Pour m'éclaircir sur les mutex (exclusions mutuelles) [Résolu]

Signaler
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Bonjour à tous

Je voudrais franchir un pallier en apprenant la gestion des exclusions mutuelles grâce aux Thread en Java. Malheureusement, avant de demarrer toute documentation quelque peu ésotérique, je voulais m'assurer que j'ai compris les bases de l'utilisation du mot-clé synchronized sur une méthode d'instance de classe.

Pour plus d'élégance, j'ai rédigé mes questions dans un fichier pdf dont voici le lien :
POO_ExclusionMutuelle_QuestionsPerso


Merci à tous ceux qui m'auront lu, merci à tous ceux qui auront tenté de le répondre, et merci à tous ceux qui m'auront répondu

6 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
Salut,

Disons que le mot clé synchronize permet de faire beaucoup de chose : locker une section de code (ensemble de ligne), locker une méthode, locker une variable, ou locker une classe.

Cependant, c'est java qui gère tout cà en interne, et c'est pas évident de savoir concrètement ce qui se passe (surtout dans des cas tordus), à ce moment là, il vaut mieux utiliser des vrais mutex, que tu libère quand tu le décide toi-même.

Par contre, mes connaissances en section critiques et synchronisation de processus/thread n'est pas suffisante pour te répondre à tes questions.

Je pense que pour des exclusions mutuelles groupées, le simple mot clé synchronized n'est plus suffisant et il faut passer par de vrais mutex.
______________________________________
DarK Sidious
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
Salut,

Ca y ressemble fortement en tout cas ;)
______________________________________
DarK Sidious
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
Salut,

Tu trouveras très certainement tout les explications qu'il te faut dans les tutoriaux de sun, par exemple celui-ci, il te montrera comment fonctionne le mot clé synchronize, et comment s'en servir.
______________________________________
DarK Sidious
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Salut DARKSIDIOUS,

je te remercie pour ta réponse et je vais jeter un coup d'oeil au tutoriel sur lequel tu m'as fourni un lien.

C'est vrai que les tutos de Sun me rebutent un peu en général (ce n'est pas avec les tutos de sun que j'ai appris à coder la poo java, mais sur le tas) mais je vais d'abord faire cet effort.

----------------------
Loloof64
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Salut

Je reconnais que mes doutes ont été mal présentés. Mais malheureusement, la documentation de Sun n'a pas entièrement comblé mes doutes.

Ce qui me gênait surtout, c'est cette histoire de verrou sur un objet
1) Il ne me semblait pas clair que ce sont les objets qui sont vérouillés, et non leurs méthodes ou leurs attributs.
2) De plus, sur cette page Java et la synchronisation, il est expliqué que si une classe C a 4 méthodes a,b,c et d : alors il est possible de faire des exclusions mutuelles groupées (a est en exclusion mutuelle avec b et c avec d, par exemple)...Ce que je n'ai toujours pas réussi à comprendre.
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Merci beaucoup en tous cas pour ta réponse

(Si j'ai bien compris les vrais mutex sont les classes du package java.util.concurrent et ses sous packages, telles que Lock, dont fait mention le tutoriel java)