Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一行中调用两个同步方法会导致死锁吗?_Java_Synchronization - Fatal编程技术网

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

Java 在一行中调用两个同步方法会导致死锁吗?,java,synchronization,Java,Synchronization,如果一个类有两个同步的方法: public class A { public synchronized int do1() {...} public synchronized void do2(int i) {...} } 在一行中调用这两个方法会导致死锁吗 A a = new A(); a.do2(a.do1()); 请注意,在您的示例中,这两个方法不会同时调用 它们之间有明确而严格的顺序-do2()在do1()完成之前无法调用 另请注意,该代码相当于 A a = new

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

public class A {
    public synchronized int do1() {...}
    public synchronized void do2(int i) {...}
}
在一行中调用这两个方法会导致死锁吗

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

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

它们之间有明确而严格的顺序-
do2()
do1()
完成之前无法调用

另请注意,该代码相当于

A a = new A();
int temp = a.do1();
a.do2(temp);

刚要提到这个,+1