【多线程】如何使用jconsole工具查看Java线程的详细信息?

🥰🥰🥰来都来了,不妨点个关注叭!
👉博客主页:欢迎各位大佬!👈

在这里插入图片描述

文章目录

  • 1. 先运行java程序!
  • 2. 在jdk目录下的bin文件夹中找到jconsole.exe
  • 3. 新建连接
  • 4. 观察线程状态
  • 5. 描述线程执行信息
  • 6. 可能遇到的问题

jconsole工具是JDK提供的工具,可以通过第三方工具jconsole,能够查看出java进程里面的线程详情信息和线程的执行情况,有助于更加深入理解多线程,下面是jconsole工具的详细使用步骤:

1. 先运行java程序!

【注意】一定要先运行代码!!!再去运用jconsole工具观察线程状态~
why~? 因为只有正在运行的程序才是进程,才能被检测到!
为了便于观察,在这里写上死循环,程序一直被执行

public class ThreadDemo1{
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(()->{
            while (true) {
                System.out.println("我是t!");
            }
        });

        t.start();

        while(true) {
            System.out.println("我是main");
        }

    }
}

2. 在jdk目录下的bin文件夹中找到jconsole.exe

如果忘记JDK安装在哪了,可以看本文末尾可能会遇到的问题中,通过本地IDEA找到的方法~
在这里插入图片描述
保持Java程序在运行状态,双击jonsole.exe,运行该程序,出现如下窗口:

3. 新建连接

此时"本地进程"这一行就显示我们当前正在运行的Java程序,选中并进行连接
在这里插入图片描述
点击连接后,会出现如下图:直接点击不安全连接
在这里插入图片描述

4. 观察线程状态

点击"线程"
在这里插入图片描述

5. 描述线程执行信息

在这里插入图片描述
为什么了解线程堆栈跟踪堆栈跟踪是线程的一个非常关键信息,它描述的是该线程中的代码执行到哪里,当进行多线程编程时,如果代码发生bug,参考堆栈跟踪具有重要意义

6. 可能遇到的问题

问题1】运行jconsole,发现进程列表式是空着的,很可能是权限问题
解决方案鼠标右键以管理员方式打开
问题2】找不到jdk
解决方案】点击File,在里面找到Project Structure,点击可以看到JDK home path
在这里插入图片描述
注意jconsole只能分析java进程,不能识别非java写的进程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/712204.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】HTML5基础

目录 0 参考1 网页1.1 什么是网页1.2 什么是HTML1.3 网页的形成 2 浏览器2.1 常用的浏览器2.2 浏览器内核 3 Web标准3.1 为什么需要Web标准3.2 Web标准的构成 4 HTML 标签4.1 HTML语法规范4.1.1 基本语法概述4.1.2 标签关系4.1.2.1 包含关系4.1.2.2 并列关系 4.2 HTML基本结构标…

解决Maven依赖引入不成功的问题

解决Maven依赖引入不成功的问题 确认IntelliJ IDEA中Maven的设置是否正确。 file --> settings --> maven 清除无效的jar,进入本地仓库清除或利用bat工具 以下是bat工具内容,运行即可。【把仓库地址换成你自己的地址进行无效jar包清除】 echo o…

【C++】编译原理

三、C编译 前面给大家演示了如何从写C代码到编译代码再到执行代码的全过程。这个过程中非常重要的编译环节,被我们一个按钮或者一个ctrlF7快捷键就给带过了。其实这个环节非常重要,如果你非常了解这个环节,你开发源代码就会更加自信和清醒&a…

视频网站下载利器yt-dlp参数详解

yt-dlp 是一个强大的命令行工具,用来下载 YouTube 和其他网站上的视频和音频。它拥有丰富的参数,可以定制下载行为,满足各种需求。本文将详细介绍 yt-dlp 的参数使用。 一、基本参数 -f, –format FORMAT: 指定下载格式,可以用视…

【系统架构】REST风格

系列文章目录 第一章 系统架构的演进 第二章 REST风格架构 文章目录 系列文章目录前言一、进程间的通信普通管道(Pipe)或者具名管道(Named Pipe)信号(Signal)信号量(Semaphore)消息…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 连续区间和(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 连续区间和(100分) 🌍 评测功能需要订阅专栏后私信联系清隆…

如何在Spring Boot中实现图片上传至本地和阿里云OSS

在开发Web应用时,处理文件上传是常见的需求之一,尤其是在涉及到图片、视频等多媒体数据时。本文将详细介绍如何使用Spring Boot实现图片上传至本地服务器以及阿里云OSS存储服务,并提供完整的代码示例。 一、上传图片至本地 首先&#xff0c…

02_01_SpringMVC初识

一、回顾MVC三层架构 1、什么是MVC三层 MVC是 模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。主要作用是降低视图与业务逻辑之间的双向耦合,它不是一种…

外链建设如何进行?

理解dofollow和nofollow链接,所谓dofollow链接,就是可以传递权重到你的网站的链接,这种链接对你的网站排名非常有帮助,这种链接可以推动你的网站在搜索结果中的位置向上爬,但一个网站全是这种有用的链接,反…

RIP路由协议汇总(华为)

#交换设备 RIP路由协议汇总 一、原理概述 当网络中路由器的路由条目非常多时,可以通过路由汇总(又称路由汇聚或路由聚合)来减少路由条目数,加快路由收敛时间和增强网络稳定性。路由汇总的原理是,同一个自然网段内的不…

变压器绕组内部故障的Simulink仿真

​利用变压器纵联差动保护的Simulink仿真模型是无法进行变压器绕组内部故障仿真的。为了解决这一问题,可将图中的三相变压器模型改变为三个单相变压器 , 在变压器属性框中选中 “三绕组变压器” (Three windings Transformer), 从而构造出一个一次绕组, 两个二次绕组…

嵌入式学习——Linux高级编程复习(UDP编程)——day43

1. UDP编程——函数接口 1.1 socket 1. 定义 int socket(int domain, int type, int protocol); 2. 功能 创建一个用来进程通信的套接字,返回文件描述符 3. 参数 domain:AF_INET IPv4协议族 type:SOCK_STREAM 流式套接字 tcp传输协议…

一文了解Spark引擎的优势及应用场景

Spark引擎诞生的背景 Spark的发展历程可以追溯到2009年,由加州大学伯克利分校的AMPLab研究团队发起。成为Apache软件基金会的孵化项目后,于2012年发布了第一个稳定版本。 以下是Spark的主要发展里程碑: 初始版本发布:2010年开发…

前后端分离对于后端来说,是利好还是利弊呢?

前后端分离已经成为前端开发的主流模式,这种模式极大的解放了后端,让后端人员不再即当爹又当妈了,那么这种模式对于后端来说是利好还是利弊呢,如何趋利避害呢,贝格前端工场为大家分享一下。 一、什么前后端分离的开发…

值传递和址传递

值传递 上面的代码是想要交换x,y的值,把x,y传递给swap函数之后,执行下面的操作: 在swap中a和b交换了,但是和x,y没有关系,所以x,y在main中不会变。 址传递 下面再看把x…

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式 拷贝后, 所有账户和数据都是一样的 步骤 停止MySQL服务 net stop mysql 或 sc.exe stop mysql net stop mysqlsc.exe stop mysql卸载 Mysql8.3.0 的服务 mysqld remove 或 mysqld remove m…

图书管理系统(SpringBoot+SpringMVC+MyBatis)

目录 1.数据库表设计 2.引入MyBatis和MySQL驱动依赖 3.配置数据库&日志 4.Model创建 5.用户登录功能实现 6.实现添加图书功能 7.实现翻页功能 1.数据库表设计 数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚至决…

探索互联网寻址机制 | 揭秘互联网技术的核心,解析网络寻址

揭秘互联网技术的核心,解析网络寻址题 前提介绍局域网地址IP地址的分配方式动态IP分配机制内部网(intranet)ICANN负责IP分配DHCP协议获取IP地址 域名系统域名是什么域名工作方式hosts文件存储域名映射关系DNS分布式数据库DNS域名解析 Java进行…

增加软件投入的重要性:提升自动化程度与用户界面设计的价值

一、引言 在许多项目中,硬件系统通常占据了大量预算,而对软件的投入相对较少。这种不平衡往往导致软件自动化程度低、操作不便、界面简陋,过多的人工干预不仅降低了工作效率,还影响了用户体验。特别是对于一些国家项目&#xff0…

【背包题】oj题库

目录 1282 - 简单背包问题 1780 - 采灵芝 1888 - 多重背包&#xff08;1&#xff09;​编辑 1891 - 开心的金明 2073 - 码头的集装箱 1905 - 混合背包 1282 - 简单背包问题 #include <bits/stdc.h> using namespace std; //二维数组:dp[i][j]max(dp[i-1][j],v[i]dp[…