Bonjour à tous.
Je me tourne vers vous car je me pose une question, je viens de voir un code comme ceci (les 2 méthodes sont dans la même classe...) :
Dans mon cas, if (condition) est vrai.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 private synchronized void method1() { try { method2(); } catch (Exception1 e) { // Treats exception } } private synchronized void method2() { if (condition) { throw new Exception1(); } }
Du coup une exception est levée. Ma question est la suivante, est ce que quand l'exception est levée, le lock sur l'objet est relâché même très brièvement ??
En fait j'ai l'impression que le lock est relaché, car un autre Thread rentre dans une méthode synchronized de cet objet !!
Voila, si vous vouliez bien m'éclairer
PS : Je précise, Java 1.4![]()
Partager