在我的机器上启动JVM实例时,在main()
中有一个运行无限睡眠的简单类,我在JVM中看到了四个关键线程(除了主线程):
我很想知道每个核心JVM线程的用途。通过快速的互联网搜索,我在这些主题中找到了以下详细信息:
我想了解这些主题和参考文档(如果已知)的更多细节(或理解上的更正)。
答案 0 :(得分:3)
你几乎已经做对了,我要添加的唯一进一步的澄清是使用attach侦听器线程(它负责动态连接。)这不是通常使用的东西,但实际上允许另一个进程在正在运行的JVM中注入一个线程,以查询有关VM如何运行的某些详细信息。它仅在两个Java VM之间实际使用(据我所见),例如在调试或分析时(或者某些IDE在运行时显示有关用户代码的其他信息)。
请注意,所有这些线程都严重依赖于实现,并且不一定在其他VM上(或者甚至是同一VM的不同版本,或者具有不同选项的相同VM).JVM可能会启动多个或几个在启动时它喜欢的核心线程,它们的数量和类型(除了主线程)不受用户控制。