1. top命令查看CPU使用率高的进程
2. top -H -p 15931(进程PID) 查看进程下的线程
3. printf "%x\n" 17503(线程PID) 线程PID 10进制转16进制 0x445f
4. jstack -l 15931(JVM进程PID) 导出java进程栈信息,里面包含线程nid=0x445f和所在的类,可结合grep命令搜索
第二种: Arthas方式快捷明了
thread 列出所有线程信息
thread 93 查看线程详细信息
修复:
结合代码来看run方法中有一个while(true)循环导致的,while(true)会导致线程使用率100%, 修改后加入50ms休眠时间
while(true){
//do something
//这里设置休眠时间,可降低使用率
Thread.sleep(50);
}