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=

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • idea tabnine激活码【在线破解激活】

    idea tabnine激活码【在线破解激活】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • android集成chrome内核_java实现ie内核

    android集成chrome内核_java实现ie内核参照开源代码jcefhttps://bitbucket.org/chromiumembedded/java-cef实现效果支持开发者工具项目源代码,目前只编译了32位http://pan.baidu.com/s/1skcXKlf…

    2022年10月24日
  • 中介效应分析与路径分析的区别_完全中介效应

    中介效应分析与路径分析的区别_完全中介效应这篇文章主要是介绍中介效应分析及路径分析的概念,以及操作步骤,注意事项。好多内容就是拷贝的邱皓政老师的《量化研究与统计分析:SPSS(PASW)数据分析范例解析》第12章节,然后在中间加入了少部分自己看的过程的一些理解吧。1.中介效应分析从上述的阐述可以知道,中介效应分析其实就是有一个变量充当了中介变量,X->Y是通过中介变量Z来传递影响的。如果是完全中介效应就是完全由Z来传递影…

  • Windows中Pycharm中配置Qt[通俗易懂]

    Windows中Pycharm中配置Qt[通俗易懂]Qt是什么Qt是Python开发窗体的工具之一,它与python有着良好的兼容性,且可通过可视化拖曳的方式进行窗体的创建,提高开发效率。Qt工具支持Windows,Linux,MacOSX三种操作系统。可用pipinstallpyqt5进行在线安装配置Pycharm由于QtDesigner在设计窗体时,后缀名为ui,需要转为py文件后才可以被…

  • MySQL字段重复出现多少次

    MySQL字段重复出现多少次

    2020年11月19日
  • R语言ggplot画图(autocad命令输入方式有几种)

    提到R语言,总会想到它强大的绘图包ggplot2,甚至于其他语言中也有它的痕迹(例如,python中的matplotlib模块就有ggplot样式)。以下,总结了一些日常绘图中常用的命令。目录一、基本绘图二、精雕细琢三、ggplot中的数据变换一、基本绘图二、精雕细琢(1)图片标题字体、大小、样式设置(2)坐标轴字体、大小、样式设置(3)颜色设置I.指定颜色scale_fill_manual(value=c())II.使用调色板RColorBrewer::displ

发表回复

您的电子邮箱地址不会被公开。

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