当前位置: 首页 > 面试题库 >

不同的(HotSpot)JVM线程类型有什么作用?

司空思聪
2023-03-14
问题内容

我看到HotSpot
JVM中实现了六种线程类型:VMThread,CGCThread,PGCThread,JavaThread,CompilerThread和WatcherThread。但是我不知道哪种线程类型在做什么。到目前为止,这是我的理解:

  • VMThread:运行VM任务,例如垃圾收集器。
  • CGCThread:并发垃圾收集器。
  • PGCThread:并行垃圾收集器(与CGC有区别吗?)。
  • JavaThread:我猜是程序的线程。
  • CompilerThread:编译器的线程吗?
  • WatcherThread:

附加问题:其他JVM呢?


问题答案:

您可以在OpenJDK网站上找到简要说明:

VM线程的主要种类如下:

  • VM线程:VMThread的此单例实例负责执行VM操作,下面将对此进行讨论
  • 定期任务线程:WatcherThread的此单例实例模拟计时器中断,以在VM中执行定期操作
  • GC线程:这些类型不同的线程支持并行和并发垃圾回收
  • 编译器线程:这些线程执行字节码到本机代码的运行时编译
  • 信号调度程序线程:此线程等待过程指示的信号,并将其调度到Java级别的信号处理方法

您可能需要阅读整个“线程管理”段落,因为它会继续进行进一步说明,例如VM线程负责什么。



 类似资料:
  • 我在Stack Overflow上阅读了一些关于JVM的帖子,并想下载Hotspot JVM的二进制副本,但我无法在http://www.java.net.上找到它 除此之外,热点JVM和Oracle上的JVM有什么区别 Oracle JVM适合生产网站吗?

  • 问题内容: 如果有人可以给我简要介绍这两个JVM的优缺点,因为它们都依赖于标准JVM规范。 问题答案: JRockit最初由Appeal和BEA Systems开发,然后被Oracle收购以运行服务器软件。1旨在针对需要长时间运行的任务,大量内存和可伸缩环境的大型应用程序进行优化,从而将这些方案的优化推到服务器模式下的SunHotSpot JVM之外 自甲骨文收购Sun Microsystems以

  • 在Emacs中,在键入 我可以看到许多类型的“utf-8”,例如,utf-8、utf-8-auto-unix、utf-8-emacs-unix等。 我在谷歌上搜索了他们,但找不到合适的答案。 附言。 我问这个问题是因为几个月前我遇到了一个编码问题。我用Emacs编写了一个php程序,在我的~/.Emacs中,我设置了 所以我想学习更多关于Emacs中的编码。

  • 我读了这篇文章“https://malloc.se/blog/zgc-jdk15,最后一个索引是关于

  • 问题内容: 更新: 这看起来像是内存问题。一个3.8 Gb Hprof文件表明,发生此“阻塞”时,JVM正在对其堆进行转储。我们的运营团队发现该站点没有响应,进行了堆栈跟踪,然后关闭了实例。我相信他们在堆转储完成之前就关闭了该站点。日志中 没有 错误/异常/问题证据-可能是因为JVM在生成错误消息之前就被杀死了。 最初的问题我们最近遇到了一种情况,该应用程序对最终用户似乎挂起了。在应用程序重新启动

  • 在研究泛型时,我注意到泛型方法和泛型类型(类或接口)在类型引入语法上的一个差异使我感到困惑。 泛型方法的语法为 文件上说 为了彼此保持一致,我希望方法语法为 ,或者类型语法(for class)为,但事实显然并非如此。 为什么一个要介绍在前,另一个要介绍在后? 我主要以的形式使用泛型,并认为可能看起来很奇怪,但这是一个主观的参数,此外对于方法也是这样。您可以调用,类似于 在寻找技术解释时,我想在指