默认线程,如 DestroyJavaVM、Reference Handler、Signal Dispatcher

2022-01-16 00:00:00 multithreading jvm java

在我自己的分析器上工作,我想解释一下我所看到的.即使在最简单的程序中,也会始终出现一些默认线程:

Working on a profiler of my own, I would like to explain what I see. There are some default threads which always appear, even in the simplest program:

  • 销毁JavaVM
  • 信号调度器
  • 终结器
  • 引用处理程序

虽然他们的名字很自证,但我想了解更多信息.这些线程似乎没有记录,是否有人知道挖掘这些信息的来源,甚至确切地知道这些线程的作用?

Although their names are quite self-documenting, I would like to get a little bit more information. It seems these threads are not documented, does someone know a source to dig for these information or even knows exactly what these threads do?

推荐答案

  1. DestroyJavaVM 是在程序中卸载 Java VM 的线程出口.大多数情况下,它应该等待,直到您的虚拟机出现末日.
  2. Signal Dispatcher 是一个线程,用于处理操作系统发送到 jvm 的本机信号.
  3. 终结器线程从终结队列中拉取对象并调用它的终结方法.
  4. Reference Handler 是一个高优先级线程,用于将待处理的 参考文献.它在 java.lang.ref.References.java 中定义
  1. DestroyJavaVM is a thread that unloads the Java VM on program exit. Most of the time it should be waiting, until apocalypse of your VM.
  2. Signal Dispatcher is a thread that handles the native signals sent by the OS to your jvm.
  3. Finalizer threads pull objects from the finalization queue and calls it finalize method.
  4. Reference Handler is a high-priority thread to enqueue pending References. Its defined in java.lang.ref.References.java

相关文章