top
使用top发现进程64690 CPU占用过高超过200%
top -H -p PID
top -H -p 64690
发现进程64690下的其中一个线程64736 CPU占用异常高
线程PID转换十六进制
printf “%x ” 64637
获取到进程64637的十六进制码值(字母小写): fce0
jstack打印堆栈信息
进入到jdk安装目录下 /opt/jdk1.8.0_11/bin
使用./jstack 64690 | grep "fce0" -A 50
可在打印出来的堆栈信息中找到对应的异常代码
线程状态
1.死锁:Deadlock(重点关注)
2.执行中: Runnable
3.等待资源: Waiting on condition(重点关注,等到什么资源)
4.等待获取监视器: Waiting on monitor entry(重点关注)
5.暂停: Suspended
6.对象等待中: Object.wait() 或者 TIMED_WAITING
7.堵塞: Blocked(重点关注)
8.停止: Parked