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



Répondre à