8

如果一个类有两个同步方法:

public class A {
    public synchronized int do1() {...}
    public synchronized void do2(int i) {...}
}

在一行中调用这两个方法会导致死锁吗?

A a = new A();
a.do2(a.do1());
4

1 回答 1

9

请注意,在您的示例中,这两种方法不是同时调用的

它们之间有明确的严格顺序——在完成do2()之前不能调用do1()

另请注意,代码等效于

A a = new A();
int temp = a.do1();
a.do2(temp);
于 2012-05-06T14:27:12.497 回答