bonjour,
j'ai une méthode main qui crée un thread, qui comporte une méthode A()
(la méthode run() est vide.)
je start() mon tread, et dans mon main, je fais un appel à A().
j'ai un doute sur la parralèlisation ainsi effectuée.
Ca marche quand même ?
bonjour,
j'ai une méthode main qui crée un thread, qui comporte une méthode A()
(la méthode run() est vide.)
je start() mon tread, et dans mon main, je fais un appel à A().
j'ai un doute sur la parralèlisation ainsi effectuée.
Ca marche quand même ?
Non le code qui s'exécutera en parralèle est seulement celui qui se situe dans la méthode run
ouinnnn
Merci de ta réponse, j'ai éviter de faire un boulette !
dommage, sur la papier c'est si beau, enfin...
NINJAEDIT :
donc si j'appelle la méthode run() ca marche du coup ?
non en fait le .start() appelle directement la méthode run...
pas besoin d'appeler celle ci.
Par contre l'appel à ta méthode A doit être appelée dans le run pour qu'elle soit exécutée
Voila mon intérêt : j'aimerais faire tourner un thread, puis une fois qu'il a terminé, vérifier un ensemble de propriété, lui donner un paramètre et relancer son exécution.
Donc, je le start() la première fois, après avoir setPropriété().
une fois l'exécution terminée grace à un appel par le thread à terminer() qui est dans ma classe main, je stop() le thread ? pour lui refaire un setPropriété() et lui refaire un start() ?
si tu as suivi bravo
Déjà, un Thread, ça ne se stoppe pas : il finit une fois que le run() a fini son exécution. Tu peux "attendre" un thread avec la méthode join();Envoyé par d_token
donc, une fois que run() est terminé, le thread se tue ?
en gros, je n'ai plus qu'à en instancier un autre ?
Il ne faut pas confondre la classe Thread et thread (processus léger)...Envoyé par d_token
La relation entre les deux est que si tu exécutes la méthode .start() d'un Thread, ça crée un nouveau thread qui exécute la méthode .run() de ton Thread...
Mais bon, normalement, on ne lance .start() qu'une seule fois (c'est écrit dans la doc)...
on ne peux pas appeler deux fois start. Si tu veux une classe a exécuter plusieurs fois, je te recommande d'écrire une classe implémentant l'interface "Runnable". Ensuite, pour chaque démarrage, tu fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 MonRunnable r = new MonRunnable(); r.setProprietes(....); new Thread(r).start(); // attendre fin d'une manière ou d'une autre r.setProprietes(....); new Thread(r).start(); // attendre une nouvelle fois la fin // etc...
Partager