一个JVM进程启动后会启动哪几个线程?
- main:执行启动类main()的线程;
- Reference Handler:处理引用的线程。用于处理引用对象本身(软引用、弱引用、虚引用)的垃圾回收问题;
- Finalizer:执行对象finalizer()的线程。JVM在垃圾收集时会将失去引用的对象包装成 Finalizer对象(Reference的实现),并放入ReferenceQueue,由Finalizer线程来处理。最后将该Finalizer对象的引用置为null,由垃圾收集器来回收;
- Attach Listener:负责接收外部命令的线程;
- Signal Dispatcher:分发处理发送给JVM信号的线程。Attach Listener线程的职责是接收外部JVM命令,当命令接收成功后,会交给Signal Dispatcher线程去进行分发到各个不同的模块处理命令,且返回处理结果。Signal Dispather线程也是在第一次接收外部JVM命令时,进行初始化工作。

浙公网安备 33010602011771号