我真的想不出任何
我能想到的一件事是
@synchronized (self)
{
@synchronized (self){}
}
但这不会死锁,因为锁是递归的,只会允许同一个线程通过。因此,如果整个程序只使用一个变量,基本上你就不会死锁
另一个我能想到的是
@synchronized (A)
{
@synchronized (B){}
}
在一个线程中和
@synchronized (B)
{
@synchronized (A){}
}
在另一个。我在这里正确吗?
那么如何避免死锁呢?有什么简单的规则吗?