Synchronisation threads

mersai Messages postés 10 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 22 avril 2009 - 11 avril 2009 à 00:54
mersai Messages postés 10 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 22 avril 2009 - 14 avril 2009 à 15:04
bonjour;

j'ai 4 threads avec identificateur 1,2,3 et 4, qui sont bloqués sur un objet en utilisant obj.wait().

comment faire pour réveillé un thread bien déterminé (cad; le threads 3 par exemple); j'ai utilisé obj.notify() mais elle reveille aléatoirement l'un thread.


merci

2 réponses

cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
11 avril 2009 à 18:06
Salut,
Si tu veux décider quel thread réveiller ne les bloquent pas sur le même objet.
Tu pourra ensuite faire un notify sur l'objet correspondant à celui que tu veux réveiller, cet objet pouvant d'ailleurs être le thread lui même (avec une méthode du style "public synchronized void reveiller() { notify() }" par exemple).
Sinon tu peux aussi surement faire ça bourrin avec un notifyAll et rendormir ceux qui ne correspondent pas.
0
mersai Messages postés 10 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 22 avril 2009
14 avril 2009 à 15:04
bonjour,

ok parfait sa fonctionne; au fait jé utilisé un tableau d'objet et je bloque chacun des threads sur une entrée du tableau.

merci
0
Rejoignez-nous