linux环境下cpu占用久居高位不下怎么办(java线程原因)?

前言:这是在学习哔哩哔哩上黑马的jvm教学中看到的一道题,在此做个记录

贴上视频连接:黑马程序员JVM完整教程,全网超高评价,全程干货不拖沓_哔哩哔哩_bilibili

第一步:通过top命令找出占用cpu较多的进程id

第二步:通过ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu  | grep 进程id     指令查看进程中线程占用cpu较高的线程id

 

第三步:通过jdk自带的工具jstack来查找线程运行情况   指令:jstack 进程id

就会将进程中的线程都列举出来,其中如图所示thread1、2、3都是用户定义的线程,根据前面找出的线程id 32655(通过ps查看到的线程id是十进制的,要先转换成16进制,然后再回到jstack中查找

 经过计算得出32665的16进制为7F99,然后再下图中找到线程号为7f99的线程为thread1,找到正执行的代码,再第8行,接下来就可以回到java源代码中去查看代码是否有问题

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值