Dlaczego poniższy kod nie prowadzi do zakleszczenia? Mam na myśli po wywołaniu getNumber (.) Obiekt klasy Test powinien być zablokowany, więc nie powinienem mieć dostępu do getNumber2 (.).Wywołanie zsynchronizowanej metody z metody zsynchronizowanej, obu tego samego obiektu.
class Test() {
synchronized int getNumber(int i){
return getNumber2(i);
}
synchronized int getNumber2(int i) {
return i;
}
public static void main(String[] args) {
System.out.println((new Test()).getNumber(100));
}
}
wyjściowa:
100
Podobne posty: http://stackoverflow.com/questions/5798637/is-it-safe-to-call-a-synchronized-method-from-another-synchronized-method – Walls
Tak, to pytanie jest takie samo , ale kontekst jest zupełnie inny. Na to pytanie pytał o martwą kłódkę, drugą o bezpieczeństwo nici. – Lovera