jstack+jdb命令查看线程及死锁堆栈信息的实例

qqstrategy55120 13 0 pdf 2021-07-02 03:07:21

如果程序挂死,有时使用jstack查看进程中线程信息时,需要添加上-F参数,此时如果有死锁信息,则可能不会打印出死锁堆栈信息,使用jdb则可以查看当前死锁线程的运行堆栈。如下模拟一个简单的死锁程序获取pid假设当前不能直接连接27709虚拟机,需要使用参数-F可以看出造成死锁的线程未t-1和t-2使用jdb连接jvm执行threads命令获取所有线程列表获取线程“t-1”堆栈信息,如下图,结合上述模拟死锁的代码,很容易就能看出来是哪里的问题类似的,获取线程“t-2”的堆栈信息通过以上步骤,基本上可以确定问题代码了。

jstack+jdb命令查看线程及死锁堆栈信息的实例

jstack+jdb命令查看线程及死锁堆栈信息的实例

jstack+jdb命令查看线程及死锁堆栈信息的实例

jstack+jdb命令查看线程及死锁堆栈信息的实例

jstack+jdb命令查看线程及死锁堆栈信息的实例

jstack+jdb命令查看线程及死锁堆栈信息的实例

jstack+jdb命令查看线程及死锁堆栈信息的实例

用户评论
请输入评论内容
评分:
暂无评论