Bonjour,
J'ai encore une question métaphysique sur Java :-p
Je vais m'expliquer avec du code :
D'après la javadoc c'est de cette manière qu'il faut utiliser les wait et notify (http://java.sun.com/j2se/1.5.0/docs/...ct.html#wait()).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class SemaphoreViteFait { Integer i = 0; public void pending() throws InterruptedException{ synchronized (i) { while(i >0){ wait(); i++; } } } public void oneMore(){ synchronized (i) { i++; notify(); } } }
La question qui me ronge, à priori si un thread a appelé la méthode oneMore et est bloqué sur wait, comment un autre thread pourra le débloquer car il est bloqué par la barrière du synchronized ?
En rédigeant ce topic une autre question m'est venue, est ce que :
C'est la même chose que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class toto{ synchronised void methodeSynchronised(){ } }
Et oui je cherche à maîtriser entièrement la gestion de thread en Java...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class toto{ void methodeSynchronised(){ synchronised (this){ } } }
---> edit ma question était incompréhensible je remercie bidi d'avoir réussi la prouesse de la comprendre :-)
Partager