我正在尝试使用另一种方法中的同步语句运行一种方法。
我的课
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()
完成它的工作?