next up previous contents
suivant: un moniteur monter: La synchronisation en Java précédent: La synchronisation en Java   Table des matières

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 2003-05-07