Bonjour,
Voici le diagramme de classes que j'ai fait avec Visio.
J'ecris une méthode de la classe C.
Cette classe C contient une map avec pour clé une String et comme valeur un objet de type D.
La classe D contient un SM et un TM qui sont utilisés par d'autres threads (de type autres que C et D). Des mutex (par synchronized) peuvent etre poses sur SM et TM par ces autres threads.
J'ai besoin de verouiller tous les TM et SM (en meme temps ou les uns apres les autres) de tous les D qui sont dans C dans la methode que je suis en train d'écrire.
Grosso modo, j'aimerai pouvoir faire, lorsque je parcours tous les D de la map, l'equivalent de blocs synchronized (element_de_la_map_de_D) qui puissent s'imbriquer.
Mes contraintes :
- Je n'ai pas le droit de verouiller C ou D (pour des soucis de deadlocks ).
- Je n'ai pas le droit de modifier le diagramme. Mais je peux rajouter des attributs dans les classes ou des nouvelles classes en plus.
J'ai cherché un peu partout sur le net avec Google et dans un livre (Java in a nutshell) mais on ne verouille qu'un seul objet.
Je sais que la conception est tres tres mauvaise (ce n'est pas moi qui l'ai faite ) mais je suis quand meme bien coincé.
Merci d'avance
Partager