购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.6 JVM的线程

根据执行任务的不同,JVM中的线程可以分为两大类:一类是执行Java任务的,称为JavaThread;另一类是执行JVM自身任务的,称为NonJavaThread。

JVM里面定义了Thread、JavaThread、NonJavaThread、NamedThread等线程基类来描述线程信息,详细说明如表3-9所示。

表3-9 JVM线程基类

(续)

VMThread是JVM自身的一个线程,它主要用来协调其他线程到达安全点(Safe Point)进行垃圾回收的。

WatcherThread是周期性任务的调度器,用来触发周期性任务的执行,JVM里面有很多周期性任务用来进行内存管理、数据清理、错误信息收集等。

垃圾回收主要有两个线程:ConcurrentGCThread,负责垃圾收集器的调度;WorkerThread,负责垃圾回收算法执行,详细说明如表3-10所示。

表3-10 JVM垃圾回收线程

代码编译主要有两个线程:CompilerThread负责代码编译与优化,ServiceThread负责编译过程中产生的垃圾数据清理,详细说明如表3-11所示。

表3-11 JVM编译线程

JVM在运行过程中还会接受外部的命令,例如在开发过程中的调试命令,所以JVM设计了JvmtiAgentThread线程来接收并处理外部命令,详细说明如表3-12所示。

表3-12 JVMTI线程 8swukt0+VzDiGlrT5qFH6xssEGhXmynPnKgH+IhYQHKhHcZQz6f8HVCd9gRRgsB9

点击中间区域
呼出菜单
上一章
目录
下一章
×