首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同的(HotSpot) JVM线程类型做什么?

不同的(HotSpot) JVM线程类型做什么?
EN

Stack Overflow用户
提问于 2013-03-06 15:23:51
回答 3查看 1.5K关注 0票数 15

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

  • VMThread:运行VM任务,比如垃圾收集器。
  • CGCThread:并发垃圾收集器。
  • PGCThread:并行垃圾收集器(与CGC不同)。
  • JavaThread:我想是程序的线程。
  • CompilerThread:编译器的线程?
  • WatcherThread:?

附加问题:其他JVM怎么办?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-14 16:27:42

您可以在OpenJDK网站上找到一个简短的解释

VM线程的主要类型如下:

  • VM线程:这个VMThread的单例实例负责执行VM操作,下面将讨论这些操作
  • 周期性任务线程:这个WatcherThread的单例实例模拟用于在VM中执行周期性操作的定时器中断。
  • GC线程:这些不同类型的线程支持并行和并发垃圾收集。
  • 编译器线程:这些线程执行字节码到本机代码的运行时编译。
  • Signal dispatcher线程:此线程等待有处理方向的信号并将其分派给Java级别的信号处理方法

您可能想阅读整个线程管理段落,因为它继续进一步解释,例如VM线程负责什么。

票数 5
EN

Stack Overflow用户

发布于 2013-03-07 15:47:12

好的,感谢大家的评论,我们有一个答案的开头:

1)由于垃圾收集器有一个停止世界的机制,除了调节之外,还有两种方法可以减少这些停顿:

  • 在通过PGCThreads运行并行GC的情况下,如果有n个核心可用,那么就可以在暂停期间运行n个线程来缩短它们。
  • 使用并发GC,通过CGCThread运行并与主程序线程同时完成常规GC off的工作。

2) CompilerThread运行实时编译器.

3) WatcherThread模拟计时器每50 in中断一次,在VM中运行周期性操作。

票数 3
EN

Stack Overflow用户

发布于 2017-10-24 17:04:53

我想补充的是,在7线程中输入了JVM!别错过os_thread

路径:在:/hotspot/src/share/vm/runtime/os.hpp中定义

代码语言:javascript
复制
  enum ThreadType {
    vm_thread,
    cgc_thread,        // Concurrent GC thread
    pgc_thread,        // Parallel GC thread
    java_thread,       // Java, CodeCacheSweeper, JVMTIAgent and Service threads.
    compiler_thread,
    watcher_thread,
    os_thread
  };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15251250

复制
相关文章

相似问题

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