Exclusion mutuelle [Fermé]

Signaler
Messages postés
10
Date d'inscription
vendredi 4 novembre 2016
Statut
Membre
Dernière intervention
8 décembre 2017
-
Messages postés
16302
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 avril 2021
-
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

Messages postés
16302
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 avril 2021
2 817
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
}