Hotspot JVM的系统线程说明

说明:

JVM中所使用的线程与原生操作系统线程有着直接的映射关系,这些线程由操作系统统一调度并分配到可用的CPU上

  1. 当JVM创建线程时其实就是在系统原生上创建线程
  2. 原生线程初始化完成后会调用java中的run()方法
  3. 当Java线程结束后,原生线程随之被回收

在Hotspot JVM中,后台运行的线程有如下几个:

虚拟机线程

(VM Thread)

这个线程等待JVM到达安全点操作出现。这些操作位于独立的线程执行。

比如堆无法修改的时候(stop-the-world、线程栈dump、线程暂停、偏向锁解除)都需要使用虚拟机线程来进行正常工作

周期性任务线程这些线程负责定时器事件(中断),用来调度周期性操作的执行
GC线程这些线程顾名思义,就是负责垃圾回收活动的线程
编译器线程这些线程在运行时将字节码动态编译成本地平台相关的机器码,比如熟悉的JIT热点编译
信号分发线程这个接收发送到JVM的信号并调度适当的JVM方法进行处理

 

总结:

这些线程从另一个层面也说明了JVM帮我们做了什么,以及如何实现的,比如虚拟机线程,有了这个线程才能保证JVM的可靠性和容错性

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐