JVM 调优实战--使用jstack分析线程执行情况

目录


jstack的使用

线程的6种状态

使用jstack分析死锁示例


jstack的使用

JVM 调优实战--使用jstack分析线程执行情况

JVM 调优实战--使用jstack分析线程执行情况

jstack命令可以直接输出每个线程的执行情况。

线程的6种状态

JVM 调优实战--使用jstack分析线程执行情况

超时等待状态和等待状态的区别:

超时等待状态时间一到就会自动恢复成运行态;

等待状态需要其他线程notify唤醒之后才会进入运行态;

等待态会自动释放资源,包括锁。

JVM 调优实战--使用jstack分析线程执行情况

使用jstack分析死锁示例

JVM 调优实战--使用jstack分析线程执行情况

JVM 调优实战--使用jstack分析线程执行情况

将程序代码放到Linux上运行: 

JVM 调优实战--使用jstack分析线程执行情况 

JVM 调优实战--使用jstack分析线程执行情况

使用jstack命令进行分析:jstack 9043

Found one Java-level deadlock:

JVM 调优实战--使用jstack分析线程执行情况

JVM 调优实战--使用jstack分析线程执行情况

JVM 调优实战--使用jstack分析线程执行情况