JVM---jstack分析Java线程CPU占用,线程死锁的解决

上传:qqstrategy55120 浏览: 7 推荐: 0 文件:pdf 大小:705.49 KB 上传时间:2022-03-14 12:04:30 版权申诉

本文章主要演示在Windows环境,Linux环境也差不多。首先写一个Java程序,并模拟一个死循环。让CPU使用率飙高。CPU负载过大的话,新的请求就处理不了了,这就是很多程序变慢了甚至不能访问的原因之一。死循环代码就不贴了,自己构造。启动程序,查看线程id,我这里是 796开多个请求访问Controller方法,可以在任务管理器看到CPU不断增高。Linux下可以通过 top命令查看CPU占用率。现在发生了问题,开始定位问题。问题是我们手动构造的,实际生产环境肯定比这个复杂的多。先把Java线程信息输出到指定文件,我这里就输出到桌面的cpu.txt文件中,如下某线程部分属性说明:。随便看一个,13812转换成16进制为:35f4,我们在cpu.txt搜一下这个线程**可以发现,这个线程是运行中的状态,在执行indexOf方法。

上传资源
用户评论