next up previous contents
Next: un moniteur Up: La synchronisation en Java Previous: La synchronisation en Java

un block synchronisé

Le block d'instruction est ininterruptible par toute instruction qui essaierai d'accéder à l'objet sur lequel porte la condition.

synchronized(compte){
   aux = compte;
   aux = aux + 10;
   compte = aux;
   }

Intuitivement, ce block d'instruction s'exécute ainsi :

  {
   compte.wait();
   aux = compte;
   aux = aux + 10;
   compte = aux;
   compte.signal();
   }

Les méthodes wait() et signal() étant applicables sur des objets synchronisés

Attention, pour ne pas avoir de problèmes, il faut que tous les threads qui manipulent compte le fasse dans un block synchronisé.



Alain GRIFFAULT
2002-02-11