2.2线程运行诊断
案例1:cpu占用过多
定位
用top定位哪个进程对cpu的占用过高
ps H -eo pid,tid,%cpu |grep 进程id(用ps命令进一步定位是哪个线程引起的cpu占用过高)
jstack 进程id
可以根据线程id找到有问题的线程,进一步定位到有问题代码的源码
注意:ps查到的线程编号是十进制的,jstack显示出的线程编号是十六进制的,故在使用jstack时,请先将十进制线程编号转化为十六进制
案例2:程序运行很长时间没有结果
如下代码会发生死锁,请使用jstack命令自行排查问题。
Last updated
Was this helpful?