JVM死锁分析

检测死锁的方法

使用jvisualvm

jvisualvm.png
【点击】线程Dump
jvisualvm-dump.png

使用jstack

  1. 通过 jps 命令查看需要查看的Java进程的vmid。例如进程号为7412。
  2. 然后利用 jstack 查看该进程中的堆栈情况,在cmd中输入
1
$ jstack -l 7412

移动到输出的信息的最下面即可得到如下图所示
deadlock.png

使用JConsole

  1. 打开jconsole
  2. 连接到需要查看的进程
  3. 打开线程选项卡,然后【点击】左下角的“检测死锁”
  4. jconsole就会给我们检测出该线程中造成死锁的线程,点击选中即可查看详情

deadlock1.png
deadlock2.png

坚持原创技术分享,您的支持将鼓励我继续创作!