I see there are six thread types implemented into the HotSpot JVM: VMThread, CGCThread, PGCThread, JavaThread, CompilerThread and WatcherThread. However I don\'t know which
And I would add that there are 7 threads type in JVM! Don't miss os_thread
path: Defined in: /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
};
You can find a brief explanation on the OpenJDK website:
The main kinds of VM threads are as follows:
- VM thread: This singleton instance of VMThread is responsible for executing VM operations, which are discussed below
- Periodic task thread: This singleton instance of WatcherThread simulates timer interrupts for executing periodic operations within the VM
- GC threads: These threads, of different types, support parallel and concurrent garbage collection
- Compiler threads: These threads perform runtime compilation of bytecode to native code
- Signal dispatcher thread: This thread waits for process directed signals and dispatches them to a Java level signal handling method
You might want to read the whole Thread Management paragraph since it continues further explanations, e.g. what the VM thread is responsible for.
Ok, thanks to comments, we have the beginning of an answer:
1) Since the garbage collector has a stop-the-world mecanism, there exist besides tunings two ways to reduce these pauses:
2) The CompilerThread runs the Just-In-Time compiler.
3) The WatcherThread simulates timer interrupts every 50ms to run periodic operations in the VM.