排查死锁的三款工具流程介绍
Posted 满眼*星辰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排查死锁的三款工具流程介绍相关的知识,希望对你有一定的参考价值。
我首先写了一个死锁的代码,文件名叫ThreadDemo36
方法一:jconsole 工具
1.我们在 JDK 的 bin 目录下找到 jconsole.exe 文件,点击启动 jconsole
2.选择我们本地进程的 ThreadDemo36 死锁代码,点击连接,并选择不安全的连接
3.选择线程,点击检测死锁
4.我们此时就可以看到出现死锁的两个线程,并且看到死锁的详细信息,拥有者,死锁的类,死锁的具体位置等信息,方便我们排查死锁
方法二:jvisualvm 工具
1.我们在 JDK 的 bin 目录下找到 jvisualvm.exe 文件,点击启动
2.打开后,我们选择 ThreadDemo36 这个死锁进程
3.点击线程,此时我们就可以看到它自动会检测到死锁,下面也会显示所有线程的信息
4.我们点击线程Dump,查看死锁的详细信息
5.此时我们就可以看到程序的执行流程,翻到最后面,则可以看到死锁线程及详细信息,用于排查死锁
方法三:jmc 工具
1.我们在本地 JDK 的bin 目录下找到 jmc.exe 文件,点击启动
2.选择我们的死锁 ThreadDemo 类,右键启动 JMX 控制台
3.点击线程,查看线程的信息
3.我们点击死锁检测,点击死锁按照死锁来排序,就可以看到t1,t2两个死锁了,点击也可以显示其中的详细信息
以上是关于排查死锁的三款工具流程介绍的主要内容,如果未能解决你的问题,请参考以下文章
Java死锁排查和Java CPU 100% 排查的步骤整理