JVM核心线程

在我的机器上启动JVM实例时,使用一个在main()运行无限休眠的简单类,我在JVM中看到四个关键线程(除了主线程):

  • 附上听众
  • 参考处理程序
  • 终结
  • 信号调度器
  • DestroyJavaVM
  • 我很想了解这些核心JVM线程的目的。 从快速的互联网搜索中,我发现了关于这些主题的以下细节:

  • 附加监听器 :动态附加在目标JVM中有一个附加监听器线程。 这是在第一个附加请求发生时启动的线程。
  • 信号调度程序 :当操作系统向JVM发出信号时,信号调度程序线程会将信号传递给适当的处理程序。
  • 引用处理程序 :高优先级的线程使未决引用排入队列。 GC创建一个需要处理的引用的简单链接列表,并且该线程将其快速添加到适当的队列中,并通知ReferenceQueue侦听器。
  • 终结器 :终结器线程调用终结器方法。
  • DestroyJavaVM :此线程在程序退出时卸载Java VM。 大部分时间应该等待。
  • 我想知道这些线程和参考文档(如果知道)的更多细节(或理解更正)。


    你几乎得到了正确的结果,我要添加的唯一进一步的说明是附加侦听器线程(它负责动态连接)。这不是通常使用的东西,但本质上允许另一个进程注入线程在正在运行的JVM中查询关于虚拟机如何运行的某些细节。 它仅在两个Java VM之间的实践中使用(如我所见),例如在调试或分析时(或者在某些IDE显示有关用户代码的其他信息的情况下)。

    请注意,所有这些线程在很大程度上取决于实现,并且不一定在其他VM上(或者甚至是同一个VM的不同版本,或者具有不同选项的同一个VM).JVM可能启动的核心线程数量与核心线程数量一样多它在启动时喜欢,那些(除了主线程)的数量和类型不受用户控制。

    链接地址: http://www.djcxy.com/p/16713.html

    上一篇: JVM Core Threads

    下一篇: How do you use an existing completion for a function in zsh?