Mutual Exclusion : sémaphore d'exclusion mutuelle (de fils d'exécution).
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.
Un mutex est un sémaphore qui n'autorise que 1 seul fils d'exécution simultané.
Le langage Java, l'exclusion mutuelle est rendue possible via des blocs synchronisés sur le monitor d'un objet.
Le solde d'un compte bancaire ne doit pas pouvoir être consulté au milieu d'un virement.
class CompteBancaire {
private float solde;
<br> <br> public <strong>synchronized</strong> void <strong></strong>debit(float montant) {<br> solde -= montant; <br> }<br> <br> public <strong>synchronized</strong> void <strong></strong>credit(float montant) {<br> solde += montant; <br> }<br> <br> public <strong>synchronized</strong> void <strong></strong>virement(CompteBancaire beneficiaire, float montant) { <br> debit(montant);<br> beneficiaire.credit(montant); <br> }<br> <br> public <strong>synchronized</strong> float getSolde() {<br> return solde; <br> }<br> }