📰 来源: 博客园 一、第一步:宏观看整体指标 !tp 查看线程池Worker总数、Running/Idle、排队队列; 特征:Running=总线程、Idle=0、队列积压几千 → 大批量线程永久卡死不释放。 初步结论:不是瞬时并发高,是线程泄漏卡死。 二、第二步:排查托管锁 !syncblk 看每条:MonitorHeld=占用数、有无等待的Waiter线程 ① 有大量等待线程 = 多lock互相争抢,传统Monitor死锁 ② 只有占用、无等待线程 = 线程拿着锁卡在业务代码,锁是副产品,不是元凶(你的场景)…