在这种情况下会发生死锁吗?

Alb*_*ore 2 java multithreading synchronization deadlock

我是否正确地说在以下情况下应该发生死锁:

对象P调用对象的同步方法,
调用对象的同步方法,
调用对象的同步方法.

对不起,如果它看起来很愚蠢,很可能就是这样.但这就是我要问的原因.谢谢!

Boz*_*zho 9

通过您提供的信息 - 不,不会发生死锁:

首先,你没有提到多个线程.单个线程不会导致死锁.但是我们假设您有多个线程.

因此,如果来自不同线程的任何其他对象以相反的顺序调用其中一些方法,则可能发生死锁.

情况说明如下:Thread-1获取进入所需的锁定methodA,然后尝试进入methodB.如果在同一时刻另一个线程 - Thread-2调用methodB并获取它的锁,然后尝试进入methodA,但Thread-1已经有锁,所以Thread-2等待.但是,因为有锁Thread-1而无法进入.他们永远等待(死锁).methodBThread-2