omcougar
Messages postés152Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention 8 octobre 2008
-
25 déc. 2007 à 22:29
omcougar
Messages postés152Date d'inscriptionmardi 4 mai 2004StatutMembreDerniè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...
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 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.
omcougar
Messages postés152Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention 8 octobre 20081 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();
}