创建两个线程,请求资源的时候互相等待就会出现死锁
private Object resource1 = new Object();
private Object resource2 = new Object();
public static void main(String[] args) {
new Test().deadLock();
}
public void deadLock(){
new Thread(()->{
synchronized (resource1){
try {
System.out.println(Thread.currentThread().getName()+"获取1");
Thread.sleep(2000);
synchronized (resource2){
System.out.println(Thread.currentThread().getName()+"获取2");
Thread.sleep(10*1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(()->{
synchronized (resource2){
try {
System.out.println(Thread.currentThread().getName()+"获取2");
Thread.sleep(2000);
synchronized (resource1){
System.out.println(Thread.currentThread().getName()+"获取1");
Thread.sleep(10*1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}