Exclusion mutuelle

Fermé
linasousou Messages postés 10 Date d'inscription vendredi 4 novembre 2016 Statut Membre Dernière intervention 8 décembre 2017 - Modifié par jordane45 le 19/11/2016 à 20:16
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 20 nov. 2016 à 13:57
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
20 nov. 2016 à 13:57
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