JavaThread与操作系统thread是1对1的关系
Java语言规范和JVM规范都没有限定线程具体要如何实现。1:1、N:1、M:N模型都OK。
- 1:1模型下Java线程与操作系统线程一一对应,在JVM内没有任何线程调度器,全部交给操作系统的调度器解决。
- N:1模型则是所有Java线程共用一个操作系统线程,Java线程的调度全部由JVM内的调度器实现。
- M:N是上述两者的混合模型。
现在主流的桌面/服务器JVM(HotSpot VM系,J9 VM系)都用1:1模型,也就是JVM内没有调度器。这种条件下题主的问题就变成了操作系统问题。跑个紧凑的死循环很容易就把某个CPU核给“吃住”了。
Java线程模型与操作系统线程的关系解析
本文探讨了Java线程与操作系统线程之间的三种模型:1:1、N:1和M:N。现代桌面/服务器JVM如HotSpotVM通常采用1:1模型,每个Java线程对应一个操作系统线程,线程调度完全由操作系统负责。在这种模型下,高强度的CPU使用可能导致单个核被占满。理解这种关系对于优化Java应用的性能至关重要。

被折叠的 条评论
为什么被折叠?



