Exclusion mutuelle

linasousou Messages postés 11 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
bonsoir tout le monde,
voila une solution au pbm d'exclusion mutuelle entre 2 processus:
int turn;
boolean flag[2];
process pi 
do {
flag[i] = true;
turn = j;
while (flag[j] && turn==j)
;                                        //do nothing
section critique
flag[i] = false;
section non-critique
}      while(true     );


si on a n processus,quel changement doit-on apporter a cette solution ?

EDIT : Sujet déplacé dans JAVA


EDIT : Ajout des balises de code

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Ton code pique les yeux...
    Impossible de dire si ça fonctionne vraiment tant c'est incompréhensible, mais à vue de nez je dirais que ça ne marche pas et que ça va consommer un tas de ressources inutiles à cause de l'attente active.

    Voici une vraie solution qui marche pour N threads :

    public static synchronized void sectionCritique() {
        // code pendant la section critique
    }
    
    public static void toto() {
        // code avant la section critique
        sectionCritique();
        // code après la section critique
    }
    0