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();
}
Aurelien Mazurie wrote:
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 à
Title: RE: Wait
Thread.sleep( 45000 ); //45 secondes
Olivier
-Message d'origine-
De : Cédric Dumetz [mailto:[EMAIL PROTECTED]]
Envoyé : jeudi 14 mars 2002 14:17
À : Liste java (E-mail)
Objet : Wait
Bonjour,
je suis fasse à un problème sans doute simple mais dont je ne
la classe Thread possede la méthode sleep : static void sleep(long millis)
comme elle est statique tu peux l'utiliser directement : Thread.sleep(45000)
-Message d'origine-
De: Cédric Dumetz [mailto:[EMAIL PROTECTED]]
Date: jeudi 14 mars 2002 14:17
À: Liste java (E-mail)
Objet: Wait
Je crois que ca marche
synchronize(this)
{
try{
wait(100);
}
catch(InterruptedException
e){ e.printStackTrace(); }
}
At 14:16 14/03/2002 +0100, you wrote:
Bonjour,
je suis fasse à un problème sans doute simple mais dont je ne mesors pas
: comment faire 'attendre' pendant une certaine période
Attention avec le sleep() : suivant les systèmes d'exploitation, la gestion
du temps diffère. Par exemple, sous
W95-98, ce n'est pas toutes les millisecondes par exemple. Il est donc
possible que ton sleep() ne dure pas exactement le temps que tu mets.
-Message d'origine-
Sinon j'utilise le plus souvent Thread.sleep() mais j'ai lu, je ne sais
plus ou, que wait() etait preferable (car les verrous sont liberes durant
l'attente). Qqn peut confirmer
d'apres allen holub ou scott oaks : OUI
Jerome
Le 14 Mar 2002 Guillaume Desnoix a écrit :
Jean-Philippe Encausse wrote:
synchronize(this) {
try { wait(100); }
catch(InterruptedException e){ e.printStackTrace(); }
}
C'est l'idee mais en synchronisant sur this, tu le bloques. Il faut
mieux utiliser un autre objet dedie
Cédric Dumetz wrote:
Bonjour,
je suis fasse à un problème sans doute simple mais dont je ne mesors pas : comment
faire 'attendre' pendant une certaine période l'execution de mon code.
je peux evidemment procéder de la façon suivante :
long time = System.currentTimeMillis();
Herve AGNOUX wrote:
Le 14 Mar 2002 Guillaume Desnoix a écrit :
Jean-Philippe Encausse wrote:
synchronize(this) {
try { wait(100); }
catch(InterruptedException e){ e.printStackTrace(); }
}
C'est l'idee mais en synchronisant sur this, tu le bloques. Il faut
mieux utiliser un autre objet
10 matches
Mail list logo