Understanding JVM Threads in a Hello World Java Application
Updated: 2016-04-21
You started your ‘Hello World’ Java application and Visual VM … what are all those threads???

- main: the application you started with the main method
- Signal Dispatcher: it handles the signals sent from the OS to the JVM
- Attach Listener: it allows external process to start a thread in the JVM and send back information to the external process
- Finalizer: pull object from the finalization queue and call the finalization method (it is created by Finaliser.java)
- Reference Handler: it manages the reference queue (v. Reference.java)
- RMI TCP Accept-0, RMI TCP Connection …, RMI Scheduler, RMI Reaper: it handles the access to remote objects
- JMX server connection: it allows the connections of JMX modules. It is created by com.sun.jmx.remote.internal.ServerCommunicationAdmin
- DestroyJavaVM: the application is shutting down, wait for all non-daemon threads to end, then destroy the VM. It’s called in the java.c file
- GC Daemon:Garbage collection thread