我看到HotSpot JVM中实现了六种线程类型:VMThread,CGCThread,PGCThread,JavaThread,CompilerThread和WatcherThread。但是我不知道哪种线程类型正在做什么。这是我到目前为止所理解的:
其他问题:其他JVM呢?
答案 0 :(得分:5)
您可以在OpenJDK website上找到简要说明:
主要的VM线程类型如下:
- VM线程:此单例VMThread实例负责执行VM操作,如下所述
- 定期任务线程:WatcherThread的这个单例实例模拟定时器中断,以便在其中执行定期操作 VM
- GC线程:这些不同类型的线程支持并行和并发垃圾回收
- 编译器线程:这些线程执行字节码到本机代码的运行时编译
- 信号调度程序线程:该线程等待进程定向信号并将它们分派给Java级信号处理方法
您可能希望阅读整个“线程管理”段落,因为它会继续进一步解释,例如: VM线程负责的是什么。
答案 1 :(得分:3)
好的,感谢评论,我们得到了答案的开头:
1)由于垃圾收集器具有世界末日的机制,除了调整之外还有两种方法可以减少这些停顿:
2)CompilerThread运行Just-In-Time编译器。
3)WatcherThread每隔50ms模拟一次定时器中断,以便在VM中运行定期操作。
答案 2 :(得分:1)
我想补充说JVM中有 7 个线程类型!不要错过os_thread
路径:定义于:/hotspot/src/share/vm/runtime/os.hpp
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
};