Hotspot JVM的系统线程说明
说明:
JVM中所使用的线程与原生操作系统线程有着直接的映射关系,这些线程由操作系统统一调度并分配到可用的CPU上
- 当JVM创建线程时其实就是在系统原生上创建线程
- 原生线程初始化完成后会调用java中的run()方法
- 当Java线程结束后,原生线程随之被回收
在Hotspot JVM中,后台运行的线程有如下几个:
虚拟机线程 (VM Thread) |
这个线程等待JVM到达安全点操作出现。这些操作位于独立的线程执行。 比如堆无法修改的时候(stop-the-world、线程栈dump、线程暂停、偏向锁解除)都需要使用虚拟机线程来进行正常工作 |
周期性任务线程 | 这些线程负责定时器事件(中断),用来调度周期性操作的执行 |
GC线程 | 这些线程顾名思义,就是负责垃圾回收活动的线程 |
编译器线程 | 这些线程在运行时将字节码动态编译成本地平台相关的机器码,比如熟悉的JIT热点编译 |
信号分发线程 | 这个接收发送到JVM的信号并调度适当的JVM方法进行处理 |
总结:
这些线程从另一个层面也说明了JVM帮我们做了什么,以及如何实现的,比如虚拟机线程,有了这个线程才能保证JVM的可靠性和容错性
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/17902.html