gpt4 book ai didi

java - 这些用简单的 Java 代码创建的 JVM 守护线程是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:05:45 24 4
gpt4 key购买 nike

我有一个非常简单的 java 应用程序,它只是创建一个对象,在无限循环中调用一个函数

public class h { 
public static void main( String[] args) {
while(true) {
B b = new B();
b.print();
}
}
}

class B {
public void print() {
System.out.println("Hello I'am class B");
}
}

打开 jvisualvm 我看到 JVM 创建了 10 个线程,只有一个 Activity 线程是主线程和 9 个守护进程。

这9个线程有什么用?

他们中有人以任何方式与垃圾收集有关吗? enter image description here

注意:java -version 的输出:

java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

操作系统:Arch Linux 4.8.6-1

最佳答案

  • Reference Handler线程负责将垃圾收集器发现的 Weak、Soft 和 Phantom 引用添加到其已注册的 ReferenceQueues 中。 .
  • Finalizer线程运行准备完成的对象的 finalize 方法。
  • Signal Dispatcher等待特定的操作系统信号并处理它们。特别是,它在 SIGQUIT 上进行线程转储,并在 SIGTERMSIGINTSIGHUP 上启动 VM 关闭进程.
  • Attach Listener线程支持Dynamic Attach机制。它监听传入的动态附加连接并执行 VM 命令。例如,它被 jstackjmapjcmd 实用程序使用。
  • RMI TCP Accept 线程显然接受新的 RMI 连接。
  • RMI TCP 连接 线程为已建立的 RMI 连接提供服务。
  • RMI Scheduler 运行 RMI 后台任务,如 DGC .
  • JMX 服务器连接超时线程在需要时终止 JMX 连接。

Reference HandlerFinalizer和部分RMI Scheduler都与GC相关。

关于java - 这些用简单的 Java 代码创建的 JVM 守护线程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40552289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com