美文网首页
Java中启动一个main方法会有几条线程?

Java中启动一个main方法会有几条线程?

作者: 简单_f79a | 来源:发表于2018-12-10 11:43 被阅读0次

    五条如下:

    public static Logger logger=Logger.getLogger(Thread.currentThread().getStackTrace()[1].getClassName());

    public static void main(String[] args) {

        //获取Java中的线程工厂 获取Java虚拟中线程Bean

            ThreadMXBean tmxb = ManagementFactory.getThreadMXBean();

            //获取所有线程

            ThreadInfo[] threadInfos=tmxb.dumpAllThreads(false, false);

            //循环打印

            for(ThreadInfo threadInfo:threadInfos) {

            logger.log(Level.INFO,"threadName-->"+threadInfo.getThreadName());

            }

    }

    打印结果

    Attach Listener:线程是负责接收到外部的命令,而对该命令进行执行的,并且把结果返回给发送者。通常我们会用一些命令去要求jvm给我们一些反馈信息,如:java -version、jmap、jstack等等。如果该线程在jvm启动的时候没有初始化,那么,则会在用户第一次执行jvm命令时,得到启动。

    Signal Dispatcher: 前面我们提到第一个Attach Listener线程的职责是接收外部jvm命令,当命令接收成功后,会交给Signal Dispatcher线程去进行分发到各个不同的模块处理命令,并且返回处理结果。Signal Dispatcher线程也是在第一次接收外部 JVM 命令时,进行初始化工作。

    Finalizer:Finalizer线程 用来执行所有对象的finalize() ;

    Reference Handler:它主要用于处理引用对象本身(软引用、弱引用、虚引用)的垃圾回收问题。

    main:自己启动的线程。

    相关文章

      网友评论

          本文标题:Java中启动一个main方法会有几条线程?

          本文链接:https://www.haomeiwen.com/subject/hvlrhqtx.html