诊断Java线程死锁
比如我们有运行这样一个程序:
了解多线程的小伙版都知道,这段代码不会有打印结果,因为发生了死锁。我们在服务器上运行试试,没有输出,对应的进程是 32752。
使用 “jstack 32752”排查,后面的信息显示 “发现死锁”,在线程1的第29行,等待对象A锁,这就和我们的代码对应起来了。
比如我们有运行这样一个程序:
了解多线程的小伙版都知道,这段代码不会有打印结果,因为发生了死锁。我们在服务器上运行试试,没有输出,对应的进程是 32752。
使用 “jstack 32752”排查,后面的信息显示 “发现死锁”,在线程1的第29行,等待对象A锁,这就和我们的代码对应起来了。