
目录
jstack死锁检测
①死锁代码:
②、linux编译执行java程序
③、jstack+pid 分析死锁
public class DeadLockWait {
public static void main(String[] args) {
Runnable r1 = () ->{
synchronized ("A"){
System.out.println("|持有A锁,等待B");
synchronized ("B"){
System.out.println("|线程同时持有A、B");
}
}
};
Runnable r2 = () ->{
synchronized ("B"){
System.out.println("||持有B锁,等待A");
synchronized ("A"){
System.out.println("||线程同时持有A、B");
}
}
};
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
}
}
编译:javac DeadLockWait.java (生成DeadLockWait.class)
执行:java DeadLockWait
多执行几次,直至进入如下死锁状态:
说明:jps获取java进程pid
友情链接:
jstack实战点睛
jstack 命令学习笔记
jstack(较详细)