您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

深入理解Java虚拟机——可视化监控工具(Jconsole)线程死锁监控示例

小志的博客 发布时间:2022-02-19 21:36:32 ,浏览量:0

目录
    • 一、可视化监控工具(Jconsole)的使用
    • 二、可视化监控工具(Jconsole)线程死锁监控示例
      • 2.1、编写死锁代码示例并运行
      • 2.2、启动可视化监控工具(Jconsole),查看线程情况

一、可视化监控工具(Jconsole)的使用
  • 参考lz此博文链接:可视化监控工具(Jconsole)的使用。
二、可视化监控工具(Jconsole)线程死锁监控示例 2.1、编写死锁代码示例并运行
  • 模拟死锁代码

    /**
     * @description:
     * @author: xz
     */
    public class DeadLock implements Runnable{
        private Object object1;
        private Object object2;
    
        public DeadLock(Object object1,Object object2){
            this.object1 =object1;
            this.object2 =object2;
        }
    
        @Override
        public void run() {
            synchronized (object1){
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (object2){
                    System.out.println("hello world");
                }
            }
        }
    }
    
  • 运行死锁代码的测试类

    public class DeadLockTest {
        public static void main(String[] args) {
            Object obj1 = new Object();
            Object obj2 = new Object();
    
            new Thread(new DeadLock(obj1,obj2)).start();
    
            new Thread(new DeadLock(obj2,obj1)).start();
        }
    }
    
  • 启动测试类,因为死锁没有输出“hello world”,如下图: 在这里插入图片描述

2.2、启动可视化监控工具(Jconsole),查看线程情况
  • dos命令行窗口输入jconsole命令,弹出【Java监控和管理控制台】,如下图:

    在这里插入图片描述

  • 查看Thread-0和Thread-1 线程情况,如下图:

    在这里插入图片描述

    在这里插入图片描述

  • 由上图可知:Thread-0线程等待,等待数量为1,拥有者为Thread-1;Thread-1线程等待,等待数量为1,拥有者为Thread-0;因此Thread-0和Thread-1造成死锁。

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0391s