用毕老师的话就是说:相当于,两个人互相要对方的锁。程序执行到这儿,就不动了,俩人要锁吵架呢
但它们也有和解的可能性。
public void run()
{
//创建同步锁,并互相嵌套
if(flag)
{
synchronized(Lock.lockA)
{
System.out.println("Lock.lockA");
synchronized(Lock.lockB)
{
System.out.println("Lock.lockB");
}
}
}
else
{
synchronized(Lock.lockB)
{
System.out.println("Lock.lockB");
synchronized(Lock.lockA)
{
System.out.println("Lock.lockA");
}
}
}
}
}
//创建锁对象
//加static:原因是可以直接用类名.lock访问
class Lock
{
static Object lockA = new Object();
static Object lockB = new Object();
} |