Internal VM Threads#
人们经常会惊讶地发现,即使执行一个简单的 “Hello World ”程序,也会在系统中创建十几个线程。这些线程由内部虚拟机线程和 library 相关线程(如 reference handler threads 和 finalizer threads)组合而成。虚拟机线程的主要类型如下:
VM thread
: VMThread 的单例负责执行虚拟机操作。主要监听和执行VM Operation
请求。其中主要是 Global Safepoint Stop The World 的协调。Periodic task thread
: WatcherThread 的单例实例模拟定时器中断,在虚拟机内执行周期性操作GC threads
: 这些不同类型的线程支持并行(parallel)和并发(concurrent)垃圾回收Compiler threads
: 这些线程完成 byte code 到 native machine code 的编译(JIT)Signal dispatcher thread
: 该线程等待进程级的信号(signals),并将其分派给 Java 级信号处理方法