欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

启动main函数,就只有一个main线程么?

程序员文章站 2023-11-12 17:33:52
测试demo:public static void main(String[] args) { //获取Java线程管理MXBean ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); //不需要获取同步Monitor和Synchronizer信息,仅仅只获取线程和线程堆栈信息 ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false...

测试demo:

public static void main(String[] args) {
    //获取Java线程管理MXBean
    ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
    //不需要获取同步Monitor和Synchronizer信息,仅仅只获取线程和线程堆栈信息
    ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);
    //遍历线程信息,打印出线程的id和线程饿名称信息
    for (ThreadInfo threadInfo : threadInfos) {
        System.out.println("线程ID=" + threadInfo.getThreadId() + ",线程名称=" + threadInfo.getThreadName());
    }
}

运行结果:
启动main函数,就只有一个main线程么?

总结

可以发现启动main函数,不是只有一个main线程,还有其他的线程存在,比如Finalizer线程是用于调用对象Finalize方法的线程,Reference Handler线程是用于清除Reference的线程,这也间接说明了Java程序天生就是多线程程序。

本文地址:https://blog.csdn.net/weixin_38106322/article/details/107093666