本文主要是介绍进程中线程使用率偏高问题排查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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);
}
这篇关于进程中线程使用率偏高问题排查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!