线程运行诊断使用jstack找到线程是否死循环和线程死锁

用top定位那个进程cpu的占用过高,找到占用过高的pid

top

在这里插入图片描述

用ps命令进一步定位时哪个线程引起的cpu占用过高

ps H -eo  pid,tid,%cpu | grep 进程id

在这里插入图片描述

jstack 进程id

jstack 32655

可以根据线程id找到有问题的线程,进一步定位到问题代码的源码行号。
将查找出来的线程号32665用计算器转换成16进制其结果为7F99
在这里插入图片描述
在报的异常中找到nid的值就可以找到对应的代码报错的位置
在这里插入图片描述
我们线上代码还有可能出现死锁的情况,同样页可以使用jstack 进程id来诊断

jstack 32752

观察输出的结果时出现了死锁
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014496893/article/details/114551142