Exclusion mutuelle

linasousou Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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