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日志,看是哪一步的堆栈卡住的

相关推荐
beata2 小时前
Java基础-18:Java开发中的常用设计模式:深入解析与实战应用
java·后端
Seven973 小时前
剑指offer-81、⼆叉搜索树的最近公共祖先
java
雨中飘荡的记忆21 小时前
保证金系统入门到实战
java·后端
Nyarlathotep011321 小时前
Java内存模型
java
暮色妖娆丶1 天前
不过是吃了几年互联网红利罢了,我高估了自己
java·后端·面试
NE_STOP1 天前
MyBatis-参数处理与查询结果映射
java
狂奔小菜鸡1 天前
Day40 | Java中的ReadWriteLock读写锁
java·后端·java ee
SimonKing1 天前
JetBrains 用户狂喜!这个 AI 插件让 IDE 原地进化成「智能编码助手」
java·后端·程序员
狂奔小菜鸡1 天前
Day39 | Java中更灵活的锁ReentrantLock
java·后端·java ee