作者:禹明明,叩丁狼高级讲师。原创文章,转载请注明出处。
看此文章前请先了解之前一篇文章 “Java死锁之理解死锁” 中的死锁示例
我们在开发中应该尽量避免死锁,但是如果真的有死锁产生那么我们怎么在一个复杂的项目中快速的找到死锁产生的原因呢?
我大概总结了一下常用的几种方式:
使用JConsole检测死锁
在我们的JAVA_HOME/bin目录下我们可以找到一个jdk提供的虚拟机监控工具叫Jconsole,双击打开连接你要查找的虚拟机进程,如图:
![jconsole1.jpg](https://i-blog.csdnimg.cn/blog_migrate/3d3df3610c51f477fc441af99f0e111c.webp?x-image-process=image/format,png)
进入监控界面后点击左下角的检测死锁会检测出死锁的线程,点击具体的线程可以看到如下图死锁相关信息.