JVM 调优实战--使用jstack分析线程执行情况
目录
jstack的使用
jstack命令可以直接输出每个线程的执行情况。
线程的6种状态
超时等待状态和等待状态的区别:
超时等待状态时间一到就会自动恢复成运行态;
等待状态需要其他线程notify唤醒之后才会进入运行态;
等待态会自动释放资源,包括锁。
使用jstack分析死锁示例
将程序代码放到Linux上运行:
使用jstack命令进行分析:jstack 9043
Found one Java-level deadlock: