博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Java提供的MXBean来监控jvm创建了哪些线程
阅读量:5286 次
发布时间:2019-06-14

本文共 1429 字,大约阅读时间需要 4 分钟。

MBean是一种JavaBean,MBean往往代表的是JMX中的一种可以被管理的资源。MBean会通过接口定义,给出这些资源的一些特定操作:

属性的读和写操作

可以被执行的操作

关于自己的描述信息

MXBean是一种特殊的MBean,不仅特殊在名字不一样,主要是在于在接口中会引用到一些其他类型的类时,其表现方式的不一样。在MXBean中,如果一个MXBean的接口定义了一个属性是一个自定义类型,如果MXBean定义了一种自定义的类型,当JMX使用这个MXBean时,这个自定义类型就会被转换成一种标准的类型,这些类型被称为开放类型,是定义在javax.management.openmbean包中的。

而这个转换的规则是,如果是原生类型,如int或者是String,则不会有变化,但如果是其他自定义类型,则被转换成CompositeDataSupport类,这样,JMX调用这个MXBean提供的接口的时候,classpath下没有这个自定义类型也是可以调用成功的,但是换做MBean,则调用发的classpath下必须存在这个自定义类型的类定义

java本身提供了一些关于线程,内存,垃圾回收和日志等管理的MXBean和一个ManagementFactory的静态工厂类,通过这些事先提供的类,我们可以监控java进程的线程创建,内存日志级别和垃圾回收等,当然,我们也可以通过创建我们自己的MXBean来实现我们想实现的一些功能

以下的例子,展示了如何使用java自身提供的MXBean来监控一个简单的java程序启动的过程中启动了哪些java线程

import java.lang.management.ManagementFactory;import java.lang.management.ThreadInfo;import java.lang.management.ThreadMXBean;public class MXBeanDemo {    public static void main(String[] args) {        System.out.println("below is thread info:");        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();        long[] threadIds = threadMXBean.getAllThreadIds();        ThreadInfo[] threadInfos = threadMXBean.getThreadInfo(threadIds);        for (ThreadInfo threadInfo : threadInfos) {            System.out.println(threadInfo.getThreadId()+": "+threadInfo.getThreadName());        }    }}

输出的信息如下:

407044-20180701173059495-1884293219.png

我们可以看到:除了main线程之外,jvm还创建了其他的四个线程,使用了IntellijIDEA的话,还会创建 一个名为Monitor Ctrl-Break的线程

转载于:https://www.cnblogs.com/jiaoyiping/p/9250668.html

你可能感兴趣的文章
设计模式(第一式:单例模式)
查看>>
opengl ES
查看>>
本地连接服务器数据库
查看>>
iOS线程安全问题
查看>>
安装 error: Microsoft Visual C++ 14.0 is required 解决方案
查看>>
CNN(自我理解)
查看>>
【codevs 1159】最大全0子矩阵 (悬线法)
查看>>
【Java并发】JUC—ReentrantReadWriteLock有坑,小心读锁!
查看>>
R画柱形图和箱线图
查看>>
结对编程收获
查看>>
QQ模拟自动登录实现
查看>>
Daily Scrum M2 11-15
查看>>
收藏的js处理时间东东
查看>>
layer 的功能
查看>>
Greedy:Graveyard Design(POJ 2100)
查看>>
input输入框只能输入数字的功能
查看>>
Storm 简介
查看>>
第十六周学习进度条
查看>>
Java并发编程:volatile关键字解析zz
查看>>
解决WPF导入图片不显示的问题
查看>>