爲什麼下面的代碼不會導致死鎖?我的意思是在我調用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 2013-03-04 14:37:45
是的問題是相同的,但上下文有很大不同。在這個問題上,它一直在問關於死鎖,另一個關於線程安全。 – Lovera 2017-09-25 14:27:42