Attente condition sans boucle [Résolu]

omcougar 152 Messages postés mardi 4 mai 2004Date d'inscription 8 octobre 2008 Dernière intervention - 25 déc. 2007 à 22:29 - Dernière réponse : omcougar 152 Messages postés mardi 4 mai 2004Date d'inscription 8 octobre 2008 Dernière intervention
- 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.
Afficher la suite 

2 réponses

Répondre au sujet
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 25 déc. 2007 à 23:22
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Ombitious_Developper
omcougar 152 Messages postés mardi 4 mai 2004Date d'inscription 8 octobre 2008 Dernière intervention - 28 déc. 2007 à 10:14
0
Utile
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();
}
Commenter la réponse de omcougar

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.