快速排查定位线上死锁

产生死锁的4个条件:
  1. 互斥条件:同一个资源同时只能被一个线程所拥有。
  2. 请求与保持条件:一个线程在请求第二把锁发生阻塞,并且持有第一把锁保持不释放。
  3. 不剥夺条件:外间不能干扰。
  4. 循环等待。
定位死锁
jps -l

13072
13344 org.jetbrains.idea.maven.server.RemoteMavenServer
53344 com.cn.lock.Lock
54776 org.jetbrains.jps.cmdline.Launcher
55644 sun.tools.jps.Jps
执行jstack 53344

图1 显示了 两个线程都是waiting的状态,表示发生了死锁,而且下面还指出了死锁的具体的类。


图1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。