Looking for description of JVM internal threads

David Holmes david.holmes at oracle.com
Wed Apr 18 15:45:05 PDT 2012

On 19/04/2012 6:55 AM, Le Huy wrote:
> I am writing a document about JVM internal threads e.g.

There is a tiny bit of documentation on:


Otherwise it's all in the source code. Some of these are VM threads; 
otherwise are created by Java libraries for specific tasks.

> * "Attach Listener"

Handles tool-based remote attach requests

> * "VM Thread"

Internal VM thread that executes safepoint operations.

> * "C2 CompilerThreadXX"

C2 compiler thread

> * "Signal Dispatcher"

Thread created to handle signal dispatching. Which in turn creates a new 
Java thread to handle specific signals.

> * "Finalizer"

Thread that executes finalizers.

> * "Reference Handler"

Thread to manage weak references and reference queues etc.

> * "Low Memory Detector"

Low memory detector :) Don't know what it does if it detects low memory 
... trigger gc?

> * "VM Periodic Task Thread"

Aka the "WatcherThread". This is a VM thread that performs periodic 
tasks eg updating performance counters.

> * ""GC task thread#XX"

GC thread. (Different Gcs can have different numbers of, and kinds of 

> The purpose of the document is to help the team to analyze and
> identify issues from native stack captured from JVM
> in production.
> Can you recommend any source of information about them such as  what
> are the role of each thread,
> how they communicate with each other, how they are kicked off, etc. ?

Details are all in the source code. Generally they are kicked off during 
VM initialization or the initialization of the responsible library.


More information about the hotspot-dev mailing list