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