java 查看线程死锁_java 查看线程死锁

java 查看线程死锁_java 查看线程死锁那我们怎么确定一定是死锁呢?有两种方法。1>使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开。1)连接到需要查看的进程。2)打开线程选项卡,然后点击左下角的“检测死锁”3)jconsole就会给我们检测出该线程中造成死锁的线程,点击选中即可查看详情:从上图中我们可以看出:①在线程Thread-1中,从状态可以看出,它想申请Paper这个资源,但是这个资…

大家好,又见面了,我是你们的朋友全栈君。

那我们怎么确定一定是死锁呢?有两种方法。

1>使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开。

1)连接到需要查看的进程。

vo+0GEd6SYEKFgMATXJpcWA3dzQVDAELwzHijdKIvJIKAAaA3ibMWUzohUNkMQAQjcZiwq+cVt8C0v7FP1gMAFgEiwEAi2AxAGCRZFkMQmj0lBSLAYCxBYsBAItgMQBgESwGACyCxQCARbAYALAIFgMAFsFiAMAiWAwAWASLAQCLYDEAYBEsBgAsgsUAgEWwGACwCBYDABbBYgDAIlgMAFgEiwEAi2AxAGARLAYALILFAIBFfIv5P0DEaVBx1LFMAAAAAElFTkSuQmCC

2)打开线程选项卡,然后点击左下角的“检测死锁”

ftFYWvwpE9wAAAAASUVORK5CYII=

3)jconsole就会给我们检测出该线程中造成死锁的线程,点击选中即可查看详情:

f7IzrEy8L+0AAAAASUVORK5CYII=

wTfFX35eeoQ0BWCGKwZQWxZZ+iIufnZY+HJsvtsdmT7MvAYBHFIOpC3zFKwAAF0IUgymiGAAAElEMpohiAABIRDGYIooBACARxWCKKAYAgEQUgymiGAAAElEMpohiAABIRDGYIooBACARxWCKKAYAgEQUgymiGAAAElEMpohiAABIRDGYIooBACARxWCKKAYAgEQUgymiGAAAElEMpohiAABIRDGYIooBACARxWCKKAYAgEQUgymiGAAAElEMpohiAABIRDGYIooBACARxWCKKAYAgEQUgymiGAAAElEMpohiAABIRDGYIooBACARxWCKKAYAgEQUgymiGAAA0v8D3u2kb+oAX1YAAAAASUVORK5CYII=

从上图中我们可以看出:

①在线程Thread-1中,从状态可以看出,它想申请Paper这个资源,但是这个资源已经被Thread-0拥有了,所以就堵塞了。

②在线程Thread-0中,从状态可以看出,它想申请Pen这个资源,但是这个资源已经被Thread-1拥有了,所以就堵塞了。

Thread-1一直等待paper资源,而Thread–一直等待pen资源,于是这两个线程就这么僵持了下去,造成了死锁。

2>直接使用JVM自带的命令

1)首先通过 jps 命令查看需要查看的Java进程的vmid,如图,我们要查看的进程TestDeadLock的vmid号是7412;

hD2OtB38s7AAAAAElFTkSuQmCC

2)然后利用 jstack 查看该进程中的堆栈情况,在cmd中输入 jstack -l 7412 ,移动到输出的信息的最下面即可得到:

8Pzjb+pmCt7A4AAAAASUVORK5CYII=

至此,相信大家都会看了吧,具体就不说啦,根据输出,找到问题所在的代码,开始调试解决即可啦。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158718.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月13日 下午7:46
下一篇 2022年7月13日 下午7:46


相关推荐

  • gmm回归stata命令_gmm模型stata命令

    gmm回归stata命令_gmm模型stata命令一、解释变量内生性检验首先检验解释变量内生性(解释变量内生性的Hausman检验:使用工具变量法的前提是存在内生解释变量。Hausman检验的原假设为:所有解释变量均为外生变量,如果拒绝,则认为存在内生解释变量,要用IV;反之,如果接受,则认为不存在内生解释变量,应该使用OLS。regldilofdiestimatesstoreolsxtivregldi(lofdi=l.lofd…

    2022年10月8日
    6
  • 信号频分复用

    信号频分复用信号频分复用对锯齿波信号频谱分析 并用两个非原始信号周期整倍数的正弦波信号进行双边带调制 closeallclea 采样频率 t 0 1 Fs 0 1 x1 sawtooth 1000 7 2 pi t 信号周期 2pi t 的系数 figureplot t x1 LineWidth 1 2 axis 00 025 11 xlabel 时间 ms ylabel 幅度 title 原始信号 时域 set gca Fo

    2026年3月17日
    2
  • css学习_css补充知识「建议收藏」

    css学习_css补充知识「建议收藏」css学习_css补充知识

    2022年4月22日
    50
  • MessageDigest简单介绍

    MessageDigest简单介绍本文博客原文參考文章:http://blog.sina.com.cn/s/blog_4f36423201000c1e.html一、概述java.security.MessageDigest类用于为应用

    2022年6月30日
    21
  • 75个最佳网络安全工具

    75个最佳网络安全工具在 2000 年的 5 6 月间 nmap hackers 邮件列表中发起了最佳安全工具的评选活动 活动取得了成功 最终由 1200 名 Nmap 用户评选出了 50 个最佳安全工具 评选结果发布在 insecure org 网站 得到了网友们的普遍认可 时隔三年 nmap hackers 邮件列表中又发起了同样的评选活动 1854 个用户参与了此次活动 每个用户最多可以选择 8 个最佳工具 并且这次评选出的最佳安全工具

    2026年3月26日
    2
  • 保姆级教程:Win+openclaw+阿里百炼大模型+飞书

    保姆级教程:Win+openclaw+阿里百炼大模型+飞书

    2026年3月13日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号