程序占用cpu太高问题解决

  • 现象:登陆机器发现有卡顿现象,因而top发现负载特别高,而且发现一进程占满cpu
  • 定位:记录下该进程号,而后top -Hp <pid>找出占用cpu太高的几个线程,记录线程id,根据这几个线程id到程序线程栈中找出对应的线程。

             (上面这部分没有保存操做截图)线程

            jstack <pid>打印线程栈,进程

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

            

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

  • 解决:最终发现这是一个轮询线程,每次轮询应该停顿一段时间释放cpu,在轮询里面加入代码Thread.sleep(100);便可解决问题。
相关文章
相关标签/搜索