首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JVM核心线程

JVM核心线程
EN

Stack Overflow用户
提问于 2013-10-17 12:55:18
回答 1查看 2.7K关注 0票数 10

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

  1. 附加听者
  2. 参考处理程序
  3. 终结器
  4. 信号调度员
  5. DestroyJavaVM

我很想了解这些核心JVM线程的用途。通过快速的互联网搜索,我在这些线程中找到了以下细节:

  1. 附加侦听器:动态附加在目标JVM中有一个附加侦听器线程。这是在发生第一个附加请求时启动的线程。
  2. 信号调度器:当操作系统向JVM发出信号时,信号分派程序线程将把信号传递给适当的处理程序。
  3. 引用处理程序:用于登记挂起引用的高优先级线程.GC创建一个需要处理的引用的简单链接列表,这个线程将它们快速添加到适当的队列中,并通知ReferenceQueue侦听器。
  4. 终结器:终结器线程调用终结器方法。
  5. DestroyJavaVM:这个线程在程序退出时卸载Java。大部分时间它应该在等待。

我想知道关于这些线程和参考文档(如果知道的话)的更多细节(或理解上的更正)。

EN

回答 1

Stack Overflow用户

发布于 2013-10-17 13:03:56

您已经很好地理解了这一点,我要补充的唯一进一步说明是使用附加侦听器线程(它负责动态附加)。这不是通常使用的东西,但实际上允许另一个进程在运行中的JVM中注入一个线程来查询有关VM运行方式的某些细节。它仅用于两个Java之间的实践(据我所见),例如调试或分析时(或者在某些IDE中,在运行时显示一些关于用户代码的其他信息)。

请注意,所有这些线程在很大程度上依赖于实现,不一定依赖于其他VM (甚至不同版本的相同VM,或具有不同选项的相同VM)。JVM在启动时可以启动多少个或多少个核心线程,这些线程的数量和类型(除了主线程)并不在用户控制之下。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19427339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档