您的位置:首页 > 编程语言 > Java开发

程序占用cpu过高问题解决

2016-06-16 00:00 405 查看
摘要: 程序占用cpu过高问题解决

现象:登录机器发现有卡顿现象,于是top发现负载特别高,并且发现一进程占满cpu

定位:记录下该进程号,然后top -Hp <pid>找出占用cpu过高的几个线程,记录线程id,根据这几个线程id到程序线程栈中找出对应的线程。

(上面这部分没有保存操作截图)

jstack <pid>打印线程栈,

把其中一个占用cpu过高的线程id=23564换算成16进制为5C0C,到线程栈中查找:



根据代码行定位到对应的线程。

解决:最终发现这是一个轮询线程,每次轮询应该停顿一段时间释放cpu,在轮询里面加入代码Thread.sleep(100);即可解决问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java jvm