如何检查线程是否死锁了?

https://www.cnblogs.com/lovedesy123/p/7752077.html
pstack和jstack判断死锁,都需要多执行几次命令,观察每次的输出结果,才能推测是否死锁了。

gdb:
1 运行程序,设置能影响程序运行的参数和环境 ;
2 控制程序在指定的条件下停止运行;
3 当程序停止时,可以检查程序的状态;
4 当程序 crash 时,可以检查 core 文件;
5 可以修改程序的错误,并重新运行程序;
6 可以动态监视程序中变量的值;
7 可以单步执行代码,观察程序的运行状态。

线程死锁分析:

  1. 连续多次执行 $pstack <pid> 其中PID是进程号
    查看每个线程的函数调用关系的堆栈,观察每个线程当前的执行点是否在等待一个锁。
    多次执行该命令,发现某些线程的当前执行点不变,总是在等待同一个锁,就可以怀疑是否死锁了。
    如果怀疑哪些线程发生死锁了,可以采用gdb 进一步attach线程并进行分析。</pid>
全部评论

相关推荐

04-13 18:10
门头沟学院 Java
想熬夜的小飞象在秋招:被腾讯挂了后爸妈以为我失联了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务