【并发编程篇17】死锁产生的条件

27 阅读1分钟

死锁

一个线程需要同时获取多把锁,这时容易发生死锁

image.png

如何进行死锁诊断

使用JDK自带工具:jps、jstack

  • jps:输出JVM中运行的进程状态信息【jps】
  • jstack:查看java进程内线程的堆栈信息【jstack -l java应用pid】

image.png

  • jconsole 可视化工具:用于对jvm的内存、线程、类的监控;是一个基于jmx的GUI性能监控工具

image.png

  • VisualVM:故障处理工具,能监控线程、内存情况、查看方法的CPU时间、内存中的对象,已被GC的对象,反向查看分配的堆栈

image.png