栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用jconsole、jvisualvm查看线程运行状态、内存实时监控

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用jconsole、jvisualvm查看线程运行状态、内存实时监控

目录

一、jconsole

 二、jvisualvm


引言:在实际开发中由于锁的使用不当可能回造成死锁的现象,那么该怎么判断是否发生死锁了呢?在这里介绍两个jdk提供的工具

首先我们先手动创建一个简单的死锁环境运行成功后,看下面推荐的两个jdk提供的工具

import java.util.concurrent.TimeUnit;

public class text {
    static Object lockA = new Object();
    static Object lockB = new Object();
    public static void main(String[] args) throws InterruptedException {
        new Thread(()->{
            synchronized (lockA){
                try {
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lockB){

                }
            }

        }).start();
        new Thread(()->{
            synchronized (lockB){
                try {
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lockA){

                }
            }

        }).start();

    }
}

一、jconsole

1、在cmd中输入jconsole,点击回车后回弹出相关的框框

 2、点击本地连接,然后要查看的进程,然后点击连接

 3、在弹出的页面中点击不安全连接

 4、点击检测死锁

5、点击相关的线程查看信息,可以定位到java代码可能发生死锁的位子

 二、jvisualvm

 1、在cmd中直接输入jvisualvm,点击回车会弹出框框

2、选择要查看的进程双击

 3、双击之后会展示进程相关信息,这时候点击线程,查看线程信息

 4、如果存在死锁,会出现下图的样式,然后点击红色框框中的线程Dump

 5、点击线程Dump之后进入新页面拖到最底下就能看到线程死锁相关信息

总结:jdk提供的这两款可视化工具不仅能够给我们排查死锁情况,还能让我们实时监控内存的使用,很牛就是了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571634.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号