thread : tester si en wait - Java - Programmation
Marsh Posté le 21-04-2005 à 17:10:16
trouvé : si ca peut servir
t.getState() == Thread.State.WAITING
Marsh Posté le 21-04-2005 à 17:13:01
Ca me parait sureprenant une boucle pour tester l'état d'un thread ...
Tu peux plutot faire un listener que ton thread préviendrait au moment au moment où il se met en wait ?
remarque : même ca ca me parait pas top ... je me demande si ton architecture est pas un peu bencale
Si tu veux, détaille un peu, on verra si on peut trouver une façon de faire plus élégante
Marsh Posté le 21-04-2005 à 17:16:20
A coup sûr, ça sent le soufre.
Et dans ta boucle, tu fais un sleep ?
Si oui, alors à un moment donné, ton application est au chômage, puisque ton thread est en "wait" tandis que la boucle fait un sleep...
Si non, c'est un affreux busy wait.
Tout cela ne présage rien de bon.
Marsh Posté le 21-04-2005 à 23:43:07
c'est quoi le pb ? il fait du polling des fois, c'est tout.
Marsh Posté le 22-04-2005 à 00:02:13
nraynaud a écrit : c'est quoi le pb ? il fait du polling des fois, c'est tout. |
y a de fortes chances pour que ca puisse être évité ...
sans dire que y a aussi de forte chance pour qu'on puisse améliorer la réactivité (être prévenu dès la fin d'une tache plutot que dès que dès que le thread de pooling se sera réveillé)
Marsh Posté le 22-04-2005 à 13:42:43
benou a écrit : y a de fortes chances pour que ca puisse être évité ... |
+1.
Le polling n'est pas mauvais en soi, mais vu l'exposé, je doute que ce soit la soluce la plus adaptée.
Marsh Posté le 22-04-2005 à 13:52:27
ah, ok.
je me souviens même plus de comment j'ai fait sur mes wait-queues.
Marsh Posté le 21-04-2005 à 16:56:47
voila je mets un thread se mets tout seul en wait une fois fini qques instructions.
j'aimerais donc savoir quand passe t'il en wait.
pour cela j'ai penser à une boucle mais le problème c'est que je ne rien trouvé pour tester le wait. j'ai essayé isAlive mais ca ne marche pas.
avez vous une idée ?
merci pour votre aide