Mutual Exclusion : sémaphore d'exclusion mutuelle (de fils d'exécution).

Besoin

Garantir qu'une section critique d'instructions (modifiant typiquement une structure de données partagée) n'est exécutée que par 1 fils d'exécution à la fois.

Analyse

Un mutex est un sémaphore qui n'autorise que 1 seul fils d'exécution simultané.

Implémentation

Le langage Java, l'exclusion mutuelle est rendue possible via des blocs synchronisés sur le monitor d'un objet.

Exemples

Le solde d'un compte bancaire ne doit pas pouvoir être consulté au milieu d'un virement.

class CompteBancaire {

   private float solde;

     public synchronized void debit(float montant) {
         solde -= montant;
     }

     public synchronized void credit(float montant) {
         solde += montant;
     }

     public synchronized void virement(CompteBancaire beneficiaire, float montant) {
        debit(montant);
        beneficiaire.credit(montant);
     }

     public synchronized float getSolde() {
        return solde;
     }
  }

"HotSpot - Threading", JavaSoft