Attente condition sans boucle [Résolu]

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

Votre réponse

2 réponses

Meilleure réponse
Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
- 25 déc. 2007 à 23:22
3
Merci
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.

Merci Ombitious_Developper 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Ombitious_Developper
omcougar
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Dernière intervention
8 octobre 2008
- 28 déc. 2007 à 10:14
0
Merci
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.