class Test implements Runnable
{
private boolean flag;
Test(boolean flag)
{
this.flag=flag;
}
public void run()
{
if (flag)
{
while(true){
synchronized(Look.looka)
{
System.out.println("if a");
synchronized(Look.lookb)
{
System.out.println("if b");
}
}
}
}
else
{
while(true){
synchronized(Look.looka)//这改成synchronized(Look.lookb)
{
System.out.println("else a");
synchronized(Look.lookb)//这儿改成 synchronized(Look.looka)
{
System.out.println("else b");
}
}
}
}
}
}
class Look
{
static Object looka=new Object();
static Object lookb=new Object();
}
class DeadLookDemo
{
public static void main(String[] args)
{
Thread t1=new Thread(new Test(true));
t1.start();
Thread t2=new Thread(new Test(false));
t2.start();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |