【发布时间】:2015-10-15 08:00:16
【问题描述】:
为什么下面的代码不是死锁并且可以正常工作?
public class Concurrent {
public static void main(String[] args) {
Concurrent my = new Concurrent();
my.method1();
}
private synchronized void method1() {
System.out.println("method1");
method2();
}
private synchronized void method2() {
System.out.println("method2");
}
}
Output:
method1
method2
当我调用 method1() 时,监视器被锁定。 JVM 或编译器不能调用 method2() 因为这个方法也被“我的”对象的监视器同步。但它工作正常。
【问题讨论】:
标签: java multithreading synchronized