Reputation: 1533
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 thread type is doing what exactly. Here is what I understood so far:
Additional question: what about other JVMs?
Upvotes: 15
Views: 1650
Reputation: 1100
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
};
Upvotes: 1
Reputation: 3246
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.
Upvotes: 5
Reputation: 1533
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.
Upvotes: 3