java线程指程序执行过程中的一个线程实体。JVM允许一个应用并发执行多个线程。Hotspot JVM中的Java线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。
Java线程结束,原生线程随之被回收。操作系统负责调度所有线程,并把他们分配到任何可用的CPU上。当原生线程初始化完结城,就会调用Java线程的run()方法。当线程结束时,会释放原生线程和Java线程的所有资源。
HotspotJVM后台运行的系统线程主要有以下几个:
- 虚拟机线程(VM thread):这个线程等待JVM到达安全点操作出现。这些操作必须要在独立的线程里执行,因为当堆修改无法进行时,线程都需要JVM位于安全点。这些操作的类型有:stop-the-world垃圾回收、线程栈dump、线程暂停、线程偏向锁解除。
- 周期性任务线程:线程负责定时器事件(也就是中断),用来调度周期性操作的执行。
- GC线程:这些线程支持JVM中不同的垃圾回收活动。
- 编译器线程:这些线程在运行时将字节码动态编译成本地平台相关的机器码。
- 信号分发线程:这个线程接收发送到JVM的信号并调用适当的JVM方法处理。
注意:本文归作者所有,未经作者允许,不得转载