zoukankan      html  css  js  c++  java
  • Java线程运行诊断

    首先说明图片都是黑马程序员课上的图片,为了更好理解,所以我把他们的运行截图直接拿来了,因为我的虚拟机上没有JAVA相关的东西。

    比如出现了CPU占用过多问题我们应该怎么做?(其他的也是类似的)

    1.用nohup java 命令后台运行程序

    2.用top定位哪个进程对cpu的占用过高

    以上图片可以看到32655的进程号占用CPU过多

    3.ps H -eo pid,tid,%cpu|grep 进程id(用ps命令进一步定位,哪个线程引起的cpu占用过高)

    此时可以看到线程id 32665占用的CPU过高

    4.jstack 进程id

     5.对你的线程id进行一个16进制的转换

     我们这里转换之后是一个7F99

    此时再看我们jstack出来的信息,说明了你的哪个类哪行出现了问题

     此时再看我们的代码第8行

     有一个while(true)问题就在这里

    总结:

    1.用nohup java 命令后台运行程序

    2.用top定位哪个进程对cpu的占用过高

    3.ps H -eo pid,tid,%cpu|grep 进程id(用ps命令进一步定位,哪个线程引起的cpu占用过高)

    4.jstack 进程id,根据线程id的16进制找到出错地方

  • 相关阅读:
    数据库
    多并发之协程
    坚持就是胜利
    线程
    python—函数
    pycharm—项目文件下的子目录的删除
    python—字符串连接方式
    python—字符串的切割
    pycharm教程
    python—迭代
  • 原文地址:https://www.cnblogs.com/dmzna/p/12933444.html
Copyright © 2011-2022 走看看