您的位置:首页 > 编程语言 > Java开发

Java中死锁的检测

2016-04-19 17:24 330 查看
死锁这个概念我相信大家都不陌生,现在的问题是在发生了死锁的时候我们怎么去检测死锁呢?

下面给出两种常用的方式来检测死锁。

我先给出一段运行在本地的死锁代码:

?
1.通过JConsole进行检测

运行JConsole命令后我们找到本地运行的进程,如图



找到本地进程后然后点击检测死锁,就可以看到死锁的线程了。在这次测试中我们可以看到发生死锁的两个线程是Thread-0和Thread-1.

这样我们就可以查看运行过程中可能出现的线程了。。。。。

血的教训:就在刚才我在写这个博客的时候死锁进程依然跑在博主的PC中,然后就是各种卡。。。。最后才意识到原来自己的死锁问题还没有解决。。。。所以。。。。死锁很严重,一旦发生之后会消耗很多资源的。

2.通过JPS与JStack命令结合来查看死锁

首先使用JPS命令找到模拟器正在运行的线程的PID,然后使用JStack查看线程的信息即可。 组后效果如下





从上图中我们就可以看到找到了死锁的线程分别是Thread-1和Thread-0两个线程。

通过以上总结我们总结了两种检测死锁的方法,两种方式的利弊并不是非常明显,所以选择也依靠个人爱好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  死锁