首页 > 编程开发 > 【小实验】启动一个 JVM 至少创建几个线程?
2023
05-29

【小实验】启动一个 JVM 至少创建几个线程?

启动一个 JVM 进程至少创建多少个线程呢?让我们来做一个实验吧!测试使用的 JDK 版本为 RedHat Open JDK 1.8.0.275。
示例代码如下:

public static void main(String[] args) {
        Thread.currentThread().getThreadGroup().getParent().list();
}

输出:

【小实验】启动一个 JVM 至少创建几个线程? - 第1张  | Weiguang的博客
从图中可以看到,执行这个简单的 main() 方法共创建了 6 个线程。分别是:
– Reference Handler
– Finalizer
– Signal Dispatcher
– Attach Listener
– main
– Monitor Ctrl-Break

system 线程组包含 4 个线程 Reference Handler、Finalizer、Signal Dispatcher、Attach Listener 和一个线程组 main,main 线程组还包含两个线程 main 和 Monitor Ctrl-Break。

各个线程的作用如下:

线程 作用
Reference Handler 处理引用类型
Finalizer 负责回收时调用对象的finalize方法
Signal Dispatcher 接收信号,比如kill -9 , kill -3
Attach Listener 负责接收外部的命令,例如 jmap 和 jstack,执行命令并且把结果返回给发送者
main 主线程
Monitor Ctrl-Break 接收ctrl+c 退出信号
最后编辑:
作者:lwg0452
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。