版权声明:歡迎转載 https://blog.csdn.net/jinjianghai/article/details/90409049
package com.xbb.thread;
public class DeadLock {
Object obj1 = new Object();
Object obj2 = new Object();
public void funOne() throws Exception{
synchronized (obj1){
Thread.sleep(10);
synchronized (obj2){
System.out.println("fun_1");
}
}
}
public void funTwo() throws Exception{
synchronized (obj2){
Thread.sleep(10);
synchronized (obj1){
System.out.println("fun_2");
}
}
}
public static void main(String[] args)throws Exception {
DeadLock deadLock = new DeadLock();
new Thread(new Runnable() {
@Override
public void run() {
try {
deadLock.funOne();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
try {
deadLock.funTwo();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}