Attente condition sans boucle [Résolu]

Signaler
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
-
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
-
Bonjour,

J'ai plusieurs threads qui sont suceptibles d'attendre qu'une condition soit vraie...

bon evidemment on peut faire une boucle genre

while(!ma_condition){
}
puis la suite du prog

mais ca bouffe des ressources donc dans la boucle on peut mettre un tempo mais dans ce cas on ajoute un delai entre le moment ou la condition passe a true et celui ou le thread passe a la suite ce qui peut s'averer desastreux pour les perfs.

donc je me demandais s'il n'existait pas une instruction pour attendre un condition ?
waitfor(ma_condition);

par exemple quand on va chercher de la data dans le stack ip qui fait ca...

merci de votre aide.

2 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Il s'avère d'après ta description de ce problème de synchronisation de plusieurs threads peut être ramener à un problème de:
Producteur-Consommateur, qui peut être résolu en utilisant un moniteur qui sert de clef dans l'opération de synchronisation.

Bye.
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
1
Effectivement,j'ai fait un truc du genre...
C'est à ca que tu fais allusion je pense ?

public synchronized recup_ma data(){
   while(y_a_rien_a_lire){
      wait();
   }
   ... je lis la data
}
public synchronized add_data(){
   ... j'ajoute la data
   notifyall();
}