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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java高级工程师常见面试题(答案)[通俗易懂]

    Java高级工程师常见面试题(答案)[通俗易懂]Java高级工程师常见面试题2017年02月17日12:46:00阅读数:17280一、Java基础1.String类为什么是final的。   1.线程安全2.支持字符串常量池数据共享,节省资源,提高效率(因为如果已经存在这个常量便不会再创建,直接拿来用)  2.HashMap的源码,实现…

    2022年6月12日
    31
  • 论文讨论&&思考《Deformable Convolutional Networks》

    论文讨论&&思考《Deformable Convolutional Networks》这篇论文真是让我又爱又恨,可以说是我看过的最认真也是最多次的几篇paper之一了,首先deformableconv的思想我觉得非常好,通过end-to-end的思想来做这件事也是极其的makese

    2022年8月6日
    3
  • java运算中的取余

    java运算中的取余java中的取模(取余)在java运算中有时会出现对一个整数取模(取余)操作,首先复习一下小学学过的除法公式:除数÷被除数=商如果没有被整数就会出现余数,例:10÷3=3余数为1在java运算中,取余符号是%1、第一种情况一个大的整数对一个比它小的整数取余publicstaticvoidmain(String[]args){in…

    2022年6月1日
    135
  • java 读写文件的两种方式

    java 读写文件的两种方式1.情景展示在实际开发过程中,对于文件的读写操作也是经常碰到的,如何用java完成对文件的准确无误的读写呢?2.场景分析在java中,我们可以通过数据流(二进制)来完成对文件的操作;其中,数据

    2022年7月1日
    20
  • mac datagrip激活教程_最新在线免费激活

    (mac datagrip激活教程)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月31日
    79
  • 专家推荐的十种健康食物

    专家推荐的十种健康食物

    2021年7月23日
    50

发表回复

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

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