死锁模拟(JAVA)
/**
* Created by double on 2019/7/29.
*/
public class DeadLockDemo {
private final Object lock1 = new Object();
private final Object lock2 = new Object();
void method1() {
synchronized (lock1) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (lock2) {
System.out.println(1);
}
}
}
void method2() {
synchronized (lock2) {
synchronized (lock1) {
System.out.println(2);
}
}
}
public static void main(String[] args) {
DeadLockDemo deadLockDemo = new DeadLockDemo();
new Thread(new Runnable() {
@Override
public void run() {
deadLockDemo.method1();
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
deadLockDemo.method2();
}
}).start();
}
}