定位思路,总体来说很清晰
- 找到具体是哪一个线程让CPU跑飞
- 找到线程执行的具体代码
个人认为其实在程序执行大量数据处理的时候cpu高是正常的,但是在没处理任务的时候cpu不降的话那就有问题了
找到对应的线程
在linux环境中
使用top命令,可以直接显示线程相关的信息
在windows环境中可以借助一个工具【Process Explorer】查看进程中的线程
找到对应的代码
通过jstack命令导出进程的线程信息,通过上面获得的线程id进行日志查看;
贴一个比较完整文档的地址:【传送门】