java 怎么定位死锁线程?【面试题详解】

今天爱分享给大家带来java 怎么定位死锁线程?【面试题详解】,希望能帮助到大家。

最常见的方式就是利用 jstack 等工具获取线程栈,然后定位互相之间的依赖关系,进而找到死锁。如果是比较明显的死锁,往往 jstack 等就能直接定位,类似 JConsole 甚至可以在图形界面进行有限的死锁检测。
如果程序运行时发生了死锁,绝大多数情况下都是无法在线解决的,只能重启、修正程序本身问题。所以,代码开发阶段互相审查,或者利用工具进行预防性排查,往往也是很重要的。
首先,可以使用 jps 或者系统的 ps 命令、任务管理器等工具,确定进程 ID。
其次,调用 jstack 获取线程栈:${JAVA_HOME}\bin\jstack your_pid
然后,分析得到的输出,具体片段如下:
java 怎么定位死锁线程?【面试题详解】插图

人已赞赏
Java

死锁是什么,产生死锁的条件 如何避免死锁?【面试题详解】

2020-11-6 16:12:32

Java

volatile 变量和 atomic 变量有什么不同?【面试题详解】

2020-11-6 16:15:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧