Java运行main方法,会有多少个线程

2021-02-08  本文已影响0人  侧耳倾听y
public static void main(String[] args) {
        
}

上面的代码在运行时,会创建多少个线程呢?答案是5(6)个。

Java中有线程组的概念,一个线程组可以包含线程和线程组。请看如下代码,打印出main方法运行时候的所有线程信息

public static void main(String[] args) {

  Thread.currentThread().getThreadGroup().getParent().list();

}

打印出来的结果(JDK8,idea):

java.lang.ThreadGroup[name=system,maxpri=10]
    Thread[Reference Handler,10,system]
    Thread[Finalizer,8,system]
    Thread[Signal Dispatcher,9,system]
    Thread[Attach Listener,5,system]
    java.lang.ThreadGroup[name=main,maxpri=10]
        Thread[main,5,main]
        Thread[Monitor Ctrl-Break,5,main]

可以看出来,main方法运行时,会有两个线程组:

当main方法运行时,会有system线程组,main线程组,mian被包含在system内。还有以下方法,可以查看

// 查看main线程组信息
Thread.currentThread().getThreadGroup().list();
// 查看活跃的线程数,如果在idea只运行一个main方法,这个数量就是2
Thread.activeCount();
上一篇 下一篇

猜你喜欢

热点阅读