![](https://img.haomeiwen.com/i9710002/0b14323fe576f03f.png)
package hxy.bytecode.thread;
public class DeadThead {
public static void main(String[] args) {
Object a = new Object();
Object b = new Object();
new Thread(() -> {
synchronized (a) {
System.out.println("I get a");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("I want to get b");
synchronized (b) {
System.out.println("I am a and get b");
}
}
}).start();
new Thread(() -> {
synchronized (b) {
System.out.println("I get b");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("I want to get a");
synchronized (a) {
System.out.println("I am b and get a");
}
}
}).start();
System.out.println("done");
}
}
效果如下
![](https://img.haomeiwen.com/i9710002/e8fd1b6ba4d729b7.png)
查看java进程
$ jps
![](https://img.haomeiwen.com/i9710002/51cd8f3099176e61.png)
查看死锁分析
$ jstack
![](https://img.haomeiwen.com/i9710002/dc3b3142bb801684.png)
网友评论