next up previous contents
Next: À propos de ce Up: La synchronisation en Java Previous: un block synchronisé

un moniteur

C'est un objet dont les attributs sont non accessibles, et toutes ses méthodes publiques sont synchronisées.

public class Compte { 
    private int contenu = 0;
    public Compte(int init) {
        contenu = init;
    }
    public synchronized String toString() {
        return " valeur compte: " + contenu;
    }
    public synchronized int getCompte() {
        return contenu;
    }
    public synchronized boolean modifCompte(int modif) {
        if (contenu+modif >0) {
           contenu += modif;
           return true;
           }
        else
           return false;
    }
}

Dans un moniteur, deux méthodes synchronisées ne peuvent s'exécuter simultanément. Ainsi toute instance de la classe Compte contient une variable entière manipulable uniquement en exclusion mutuelle.



Alain GRIFFAULT
2002-02-11