Salut la liste !
Plut�t que de synchroniser sur une m�thode, utilise plut�t un bloc de
code synchronis� sur un objet qui contient l'ensemble des propri�t�s �
v�rifier :
M�thode_machin() {
...........
Synchronized(maVariable)
{
if(maVariable.prop_1 && maVariable.prop_2 && ...)
notify();
}
...etc...
@++ !
Eric Lemaitre (SCJP2, SCJD2, CCNA, CCDA, RHCE, RHCX)
-----Message d'origine-----
De : Aurelien Mazurie [mailto:[EMAIL PROTECTED]
Envoy� : lundi 11 ao�t 2003 13:59
� : [EMAIL PROTECTED]
Objet : wait() sur multiples conditions
Bonjour � tous,
Sauriez-vous m'indiquer de la documentation sur le concept
suivant:
j'ai un thread qui doit attendre que plusieurs conditions soit
r�alis�es pour �tre d�bloqu�. Comment impl�menter ce comportement ?
Pour le moment mon processus fait appel � une m�thode d'une
classe qui
le bloque tant qu'une variable n'a pas �t� modifi�e:
============================8<==========
[ bloc du processus ]
variableAttendue.waitUntilModified()
[ bloc de la classe dont la variable est audit�e ]
class VariableAttendue
{
private Object maVariable;
...
... code pouvant appeller modificationDeLaVariable()
...
private synchronized modificationDeLaVariable()
{
maVariable = nouvelleValeur;
notify();
}
public synchronized waitUntilModified()
{
wait();
}
}
============================8<==========
J'aimerai maintenant que le processus principal soit � l'attente
non
pas seulement d'une modification de la variable de la classe
VariableAttendue, mais, en plus, d'un autre �v�nement quelconque (pour
la petite histoire, ici ce sera le clic sur un bouton).
Mais comment faire ? J'ai cru comprendre que Java n'autorise pas
ce
genre de manipulations par d�faut, et qu'il faut impl�menter certaines
structures pour y parvenir. Auriez-vous des pistes ?
En vous remerciant,
Aur�lien Mazurie