別のメソッド内で同期ステートメントを使用して 1 つのメソッドを実行しようとしています。
私のクラス
public class MyClass {
private Object lockObject = new Object();
public void testFirst() {
synchronized (lockObject) {
System.out.println("Entered testFirst() sync");
testSecond();
System.out.println("Leaving testFirst() sync");
}
}
private void testSecond() {
synchronized (lockObject) {
System.out.println("Entered testSecond() sync");
}
}
}
主要
package com.replanet;
public class Main {
public static void main(String[] args) {
MyClass myClass = new MyClass();
myClass.testFirst();
}
}
出力
Entered testFirst() sync
Entered testSecond() sync
Leaving testFirst() sync
私は別の出力を期待していました。
Entered testFirst() sync
Leaving testFirst() sync
Entered testSecond() sync
仕事が終わるtestSecond()
まで待たないのはなぜですか?testFirst()