Attente condition sans boucle

Résolu
omcougar Messages postés 152 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 8 octobre 2008 - 25 déc. 2007 à 22:29
omcougar Messages postés 152 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 8 octobre 2008 - 28 déc. 2007 à 10:14
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

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
25 déc. 2007 à 23:22
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.
3
omcougar Messages postés 152 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 8 octobre 2008 1
28 déc. 2007 à 10:14
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();
}
0
Rejoignez-nous