vic le viking a écrit :
mais que font les autres threads pendant ce temps ? ils attendent que le thread soit sorti de la methode pour y rentrer ?
|
bha oui ...
vic le viking a écrit :
et tu penses quoi de la methode de harkonnen (un evenement envoyé par le thread au programme principal), c'est aussi propre que ce que tu me proposes ?
|
le truc d'harko peut marcher aussi :
tu peut mettre ton thread principal en attante en fesant ca après avoir lancé tes threads :
Code :
- sycnhronized (this) {
- try {
- this.wait();
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- nettoyer();
|
et dans chacun de tes threads, il faudra qu'il possède une référence de ton thread pricnipal (ou plus précisément de l'objet que représente this dans le code ci-dessus), et plutot que d'appeler nettoyer à la fin de la boucle, tu mets ce code là :
Code :
- while (tonBooleen) {
- ...
- }
- sycnhronized (lObjetSurLequelTuAsFaiWait) {
- lObjetSurLequelTuAsFaiWait.notify();
- // ca réveille le thread dans lequel le wait a été fait
- }
|
les deux méthodes sont valables. Dans la mienne l'inconvénient est que tous les threads vont se bloquer sur la méthode nettoyer le temps que celle-ci soit executée, dans la méthode harko, le problème c'est que ca bloque le thread principal ...