一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。
总体流程:
首先显示java进程的线程列表,查找运行时间长的线程:1ps -mp pid -o THREAD,tid,time
或者使用top命令的线程模式:1top -p pid
然后按’H’,进入线程模式,第一列PID为tid(线程id)
其次将需要的线程ID转换为16进制格式:1printf "%x\n" tid
最后打印线程的堆栈信息:1jstack pid |grep tid -A 30