JVM运维

找出某个线程出现死锁的原因

jstack [option] pid

第一步先找出Java进程ID

jps

第二步找出该进程内最耗费CPU的线程 top -Hp pid

(根据某个字段排序:先按f,进入字段选择选项,上下键选择,然后s确认,q退出,就实现了排序)

第3步 把耗时最久的线程Id用16进制表示

比如是772线程

第4步 jstack 输出

bash 复制代码
jstack 321 | grep 304

可以看到这里是条件等待 正常的等待

如果是异常的等待 可以进一步看jstack日志,看是哪一步的堆栈卡住的

相关推荐
大飞pkz6 分钟前
【C#】正则表达式
开发语言·正则表达式·c#·string·字符串匹配·高效字符串匹配
猪蹄手1 小时前
C/C++基础详解(三)
开发语言·jvm·c++
别来无恙1491 小时前
Java 8 Stream API 完全指南:优雅处理集合数据
java·开发语言·streamapi
freed_Day1 小时前
Java进阶学习之不可变集合
java·学习
阿巴~阿巴~1 小时前
string 类元素访问方法
开发语言·c++
猫头虎2 小时前
如何实现在多跳UDP传输场景,保证单文件和多文件完整传输的成功率?
java·开发语言·网络·python·网络协议·golang·udp
SimonKing2 小时前
深入理解HanLP1.x,填平可能遇到的坑
java·后端·程序员
尘心不灭2 小时前
MyBatis 缓存与 Spring 事务相关笔记
java·spring·mybatis
Java中文社群3 小时前
说说内存泄漏的常见场景和排查方案?
java·后端·面试
_Kayo_3 小时前
JS深拷贝 浅拷贝、CSS垂直水平居中
开发语言·前端·javascript