//锁
public class Lock {
static Object lock1 = new Object();
static Object lock2 = new Object();
}
//类实现Runnable接口
}
//类实现Runnable接口
public class DeadLock implements Runnable {
private boolean flag;
public DeadLock(boolean flag) {
this.flag = flag;
}
@Override
public void run()
{
if(flag)
{
while(true)
{
synchronized(Lock.lock1)
{
System.out.println("if lock1");
synchronized(Lock.lock2)
{
System.out.println("if lock2");
}
}
}
}
else
{
while(true)
{
synchronized(Lock.lock2)
{
System.out.println("else lock2");
synchronized(Lock.lock1)
{
System.out.println("else lock1");
}
}
}
}
}
}
// 测试类
public class DeadLockTest {
/**
* @param args
*/
public static void main(String[] args) {
Thread t1 = new Thread(new DeadLock(true));
Thread t2 = new Thread(new DeadLock(false));
t1.start();
t2.start();
}