操作系统:centos7
这里我们模拟一个CPU占用100%的程序,程序很简单死循环。
运行该程序,然后通过top命名查看:
找到执行CPU占用高的JAVA进程,对应的PID为510
接着使用如下命令查看具体是哪个线程执行CPU过高
top -Hp 510
-H:显示线程信息
这里发现PID为511的线程执行CPU占用过高。
接下来通过jstack -l 510 来查看当前java程序的线程栈,同时将我们上一步查找到的CPU执行过高的线程PID 511 转换成16进制 :511===》1FF
这样我们就定位到了我们程序问题所在的位置。接下来我们检查代码即可。
完毕!!!