왜 아래 코드가 교착 상태가되지 않습니까? 내 말은 getNumber (.)를 호출하면 클래스 Test의 객체가 잠겨져 getNumber2 (.)에 액세스 할 수 없어야합니다.같은 객체의 동기화 된 메서드에서 동기화 된 메서드 호출
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));
}
}
출력 :
100
비슷한 게시물 : http://stackoverflow.com/questions/5798637/is-it-safe-to-call-a-synchronized-method-from-another-synchronized-method – Walls
예 질문에 동일한 , 문맥은 상당히 다르다. 이 질문에 대해서는 죽은 자물쇠에 대해 물어 보았습니다. – Lovera