排查死锁的三款工具流程介绍

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两个死锁了,点击也可以显示其中的详细信息
在这里插入图片描述

以上是关于排查死锁的三款工具流程介绍的主要内容,如果未能解决你的问题,请参考以下文章

死锁的 4 种排查工具 !

死锁的 4 种排查工具 !

死锁排查的小窍门 --使用jdk自带管理工具jstack

Java死锁排查和Java CPU 100% 排查的步骤整理

Java死锁排查和Java CPU 100% 排查的步骤整理(转)

sql server 死锁排查