JDK21-虚拟线程(原理)

一、先给结论

虚拟线程不是不运行在 OS 线程上,而是:
只在“真正需要 CPU 时”才短暂占用 OS 线程。
在 IO 等待时,JVM 会把它“卸载”下来。


二、为什么传统线程一定占用 OS 线程?

1️⃣ Java 线程 = OS 线程(1:1)

在 Java 21 之前:

JavaThread<==>OSThread

当你写:

Threadt=newThread(()->httpCall());t.start();

本质是:

  • JVM 调用pthread_create
  • 创建一个真实的内核线程
  • 栈、调度、阻塞全交给操作系统

2️⃣ OS 不懂“这是 IO 等待”

当线程调用:

socket.read();

操作系统只知道一件事:

“这个线程现在在等数据”

于是:

  • OS 把线程状态设为BLOCKED
  • 线程仍然存在
  • 仍然占:
    • 内核线程结构
    • 栈内存
    • 调度成本

📌OS 无法把这个线程“拆掉”再给别人用


三、虚拟线程是如何“骗过”操作系统的?

关键思想:

👉阻塞不交给 OS,而是交给 JVM


1️⃣ 虚拟线程的真实结构

Virtual Thread(JVM对象) | |--- Continuation(可挂起的执行体) | |--- 运行在 ↓ Carrier Thread(少量 OS 线程)

Carrier Thread 才是真正的 OS 线程


2️⃣ JVM 在关键 IO 点“插手”了

虚拟线程的核心魔法在这里👇

传统线程:

Thread | |-- socket.read() | |-- OS 阻塞线程

虚拟线程:

VirtualThread | |-- socket.read() | |-- JVM 拦截 | |-- 保存当前执行现场(Continuation) |-- 从 Carrier Thread 上卸载 |-- 把 Carrier Thread 还给调度器

📌OS 完全不知道有这么回事


3️⃣ JVM 怎么知道“这是 IO”?

因为:

👉 JDK 的 IO 被“改造”了(关键)

以下 API 在虚拟线程下是可挂起的

  • Socket
  • HttpClient
  • InputStream / OutputStream
  • Selector
  • NIO

JDK 内部逻辑(简化):

if(currentThread.isVirtual()){parkContinuation();}else{blockOSThread();}

四、Continuation:真正的“黑科技”

1️⃣ 什么是 Continuation?

你可以理解为:

一个可以暂停 / 恢复的调用栈快照

它保存了:

  • 当前方法栈
  • 局部变量
  • 执行位置

2️⃣ 挂起时发生了什么?

┌──────────────┐ │ 方法 A │ │ 方法 B │ │ 方法 C <-- 当前执行点 └──────────────┘

JVM 做了:

  1. 把这段执行栈复制到堆内存
  2. 解绑当前 OS 线程
  3. 标记为 WAITING

3️⃣ 恢复时发生了什么?

当 IO 就绪:

  1. JVM 选一个空闲 Carrier Thread
  2. 把 Continuation 装回去
  3. 从 C 方法继续执行

👉就像什么都没发生过


五、为什么说“虚拟线程不占用 OS 线程”?

更准确的说法是:

**虚拟线程在“运行时”才占用 OS 线程
**在“等待时”不占用 OS 线程

对比:

状态传统线程虚拟线程
执行 CPU占 OS 线程占 OS 线程
等 IO仍占 OS 线程❌ 不占
空闲不占

六、这就是为什么并发能暴涨 100 倍

假设:

  • OS 线程池:200
  • IO 等待时间:95%

传统模型:

200 个线程 ≈ 190 个在等 IO ≈ 10 个在干活

虚拟线程模型:

200 个 Carrier Thread + 100,000 个 Virtual Thread ≈ 99,500 个在挂起 ≈ 500 个随时可运行

七、为什么你“几乎不用改代码”?

因为:

  • 同步 API 没变
  • try/catch 没变
  • ThreadLocal 可用
  • JDBC / HTTPClient 可用

JVM在你看不到的地方做了调度革命。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1201013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026年上海全屋定制衣柜公司TOP品牌厂家排行榜:全屋定制行业深度评测与排名、行业问题与选择指南

基于2026行业动态及市场研究报告,当前企业在需求全屋定制衣柜过程中,普遍面临信息杂乱、适配困难、质量参差等问题。本文旨在通过综合企业综合实力、技术能力、服务网络、市场口碑等维度进行严格筛选,为读者提供可靠…

2026英语雅思培训学校机构辅导机构推荐哪家好?家长择校避坑指南+深度解析

很多计划送孩子留学的家长,在选择雅思培训学校机构辅导机构时都会陷入核心困惑:不知道该优先考量师资实力还是课程体系,担心选到不适配孩子基础的机构浪费时间与金钱,又纠结机构能否衔接留学申请事宜,面对市面上五…

rust maturin 在调用 cargo 时,无法联网拉取 crates.io 索引,因为系统被代理到 127.0.0.1:10809,而本地并没有可用的代理服务

这个报错的核心是&#xff1a; 「maturin 在调用 cargo 时&#xff0c;无法联网拉取 crates.io 索引&#xff0c;因为系统被代理到 127.0.0.1:10809&#xff0c;而本地并没有可用的代理服务。」 也就是说&#xff0c;Cargo 的 HTTP 代理设置指向了一个不存在的本地代理端口&am…

AI Agent架构全解析:从感知到行动,小白也能上手的智能体开发实战,错过再等十年!

为深入贯彻落实工业和信息化部《工业互联网和人工智能融合赋能行动方案》&#xff0c;加快推动工业互联网与人工智能在更广范围、更深程度、更高水平上实现融合赋能&#xff0c;中国工业互联网研究院依托工业互联网大数据技术工信部重点实验室工业智算研究中心&#xff0c;联合…

JDK21-虚拟线程(实战)

背景&#xff1a; 系统需要在极短的时间(短时间可以减少实际余额偏差)拉取多个第三方平台的账户余额&#xff0c;并保存到数据库。 每个平台都是 HTTP IO 调用 数据解析 DB 写入&#xff0c;典型的 IO 密集型任务。 一、业务场景简介(将具体的平台脱敏了,是真实数据) 系统涉…

【AI黑科技】颠覆传统RAG!PageIndex让AI拥有“推理脑“,金融文档分析准确率98.7%!

相似度 ≠ 相关性&#xff1a;颠覆传统 RAG&#xff0c;PageIndex 让 AI 学会"推理式检索" 在金融文档分析基准 FinanceBench 上达到 98.7% 准确率&#xff0c;超越所有向量检索方案 引言 当你向 AI 提出一个关于 50 页财报的复杂问题时&#xff0c;传统的 RAG&…

大模型Agent Skills配置指南:让AI助手从“智障“变“神助攻“,附销售数据分析实战代码

文章详解大模型Agent Skills配置原则&#xff1a;技能要精准而非空泛、要分层管理而非堆砌、要有逻辑关联而非孤立。通过销售数据分析助手实战案例&#xff0c;展示具体技能和工作流设计方法&#xff0c;提供配置技巧与常见问题解决方案。强调技能配置是持续迭代过程&#xff0…

【学术干货免费领】学术会议海报 | 学术会议必备 | 科研展示 | 科研海报 | 国际学术海报 | 会议参会 | 科研成果展示 | 海报展示 | 90+学术Poster模板0元打包下载,速领!

一句话&#xff1a;只要你的研究需要“被看见”&#xff0c;模板就能让你“被看懂、被记住、被引用”。硕博研究生开题/中期/毕业答辩、学术年会、国内外会议 Poster Session30 min 出图&#xff0c;导师秒过&#xff0c;奖学金加分青年教师/博士后职称评审、基金前期成果墙、校…

震惊!90%的RAG项目都做错了!RAG不是“加模块“,而是构建完整的AI判断体系

RAG不是"加模块"&#xff0c;而是一整套数据与判断体系 提到RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;&#xff0c;很多人第一反应可能是&#xff1a;"这不就是给大模型多喂点资料&#xff0c;让它照着说吗&#xf…

【广州南方学院主办 | 斯普林格出版 | 高录用、接收综述文章 | 征稿主题广:人工智能、虚拟现实、艺术、设计类稿件均可接收】第二届人工智能赋能数字创意设计国际学术会议(AIEDCD 2026)

征稿主题广&#xff1a;人工智能、虚拟现实、艺术、设计类稿件均可接收 | 高录用、接收综述文章 第二届人工智能赋能数字创意设计国际学术会议(AIEDCD 2026) The 2nd International Conference on AI - Enabled Digital Creative Design 大会时间&#xff1a;2026年3月27-29…

【大模型实战】Agent开发不再迷茫:从推理到运行,构建能“活下去“的系统

一、什么是一个真正的 Agent 如果对“Agent”缺乏一个在工程上成立的定义&#xff0c;那么后续所有关于模型、框架与实现细节的讨论&#xff0c;都会不可避免地失焦&#xff0c;最终退化为&#xff1a; 模型切换经验SDK 使用说明Demo 级实现技巧 而这些&#xff0c;都无法支…

【AI炸裂】大模型Agent学习指南:131篇顶会论文+321个实战案例+代码,小白也能弯道超车!

当前正是Agent发展的黄金时期&#xff0c;对于想要在该领域发论文的同学来说&#xff0c;掌握其高效的学习路径、深入了解Agent的核心系统形态/技术融合创新至关重要。 本文根据以上三维视角&#xff0c;整理了131篇前沿论文&#xff0c;包含当前顶会热点“多智能体”、“大模…

【大数据毕设全套源码+文档】基于Hadoop和Hive的济南旅游景区数据的分析与可视化的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

移动端测试如何学,超详细的APP测试攻略送上

前言 随着手机应用市场发展的逐渐成熟&#xff0c;手机APP已经渗透到人们的吃穿住行生活&#xff0c;比如手机支付APP、通讯APP、各大应用软件等&#xff0c;关于手机APP安全性能的重要性不言而喻。 鉴于此&#xff0c;做好手机APP测试对于软件开发方把控产品质量有着重要意义…

【AI革命】马斯克X算法大揭秘:人工规则已死,RAG接管一切!程序员必学的顶级架构!

就在最近&#xff0c;马斯克的 xAI 团队更新了 x-algorithm 仓库。这份代码宣告了一个时代的终结&#xff1a;人工规则已死&#xff0c;AI 接管一切。 通过对核心组件 Phoenix 的源码拆解&#xff0c;我发现了一个令人震惊的技术真相&#xff1a;驱动 X 全球亿万流量的底层逻辑…

【大数据毕设源码分享】django基于大数据的共享单车数据分析与可视化的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

AI Agent‘翻车‘别慌!Skills来救场,小白也能当大神!

最近一段时间&#xff0c;如果你关注 Agent 相关的产品和讨论&#xff0c;大概率会注意到一个变化&#xff1a;多款主流工具/平台都相继发布了对 Skills 的支持。 比如&#xff1a;Cursor 的 beta 版里已经开始支持 Skills&#xff0c;Coze 这两天也刚发布了对 Skills 的支持&…

TGF-β 信号通路核心干货解析

TGF-β 信号通路是进化上保守的分泌型多肽介导的信号转导系统&#xff0c;核心参与早期胚胎发育、组织器官形成、免疫监督、组织修复及成体稳态维持&#xff0c;其异常激活或抑制与多种疾病密切相关&#xff0c;是发育生物学、肿瘤学、免疫学分领域的重点研究方向。 一、TGF-β…

【保姆级教程】AI Agent编排新姿势:TurnToken机制让大模型协作像搭积木一样简单!

如何编排 AI Agent&#xff1f; 一句话简介 本文将探讨如何将 AIAgent 作为一等公民集成到工作流中&#xff0c;利用 TurnToken 机制触发智能体协作&#xff0c;构建复杂的 AI 业务流程。 &#x1f914; Executor vs Agent 在 MAF Workflow 中&#xff0c;我们有两种主要的执…

【大数据毕设源码分享】springboot基于Hadoop和Hive的济南旅游景区数据的分析与可视化的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…