JDK 28通过JEP 543最终确定结构化并发,结束七轮预览
InfoQ 软件架构师新闻通讯
每月概览,介绍架构师或有志成为架构师的人需要了解的事项。查看示例
输入您的电子邮箱地址
选择您的国家/地区
- 我同意 InfoQ.com 按照此隐私声明处理我的数据。
关闭
线上 InfoQ AI 安全与隐私工程认证(10 月 26 日):为生产环境中的 AI 系统做出安全与隐私决策。立即注册
关闭
切换导航
促进专业软件开发领域知识与创新的传播
英文版
解锁完整的 InfoQ 体验
登录即可解锁完整的 InfoQ 体验!关注喜爱的作者和主题,参与内容互动,并下载专属资源。
或
还没有 InfoQ 账号?
- 及时了解对您重要的主题和同行:即时获取最新见解和趋势提醒。
- 快速获取免费资源以持续学习:迷你书、带文字稿的视频和培训材料。
- 保存文章并随时阅读:收藏文章,随时阅读。
主题
开发领域精选
-
通过增量式集成 Rust 来加速性能
Lily Mara 解释了如何通过增量式 FFI 重构避免高风险的软件重写。她分享了工程团队如何借助 PyO3 用 Rust 替换 Python 瓶颈,并演示如何在不引入微服务开销的情况下实现显著的函数级加速、无缝集成测试以及可观的基础设施成本节约。
开发领域全部内容关注主题
架构与设计领域精选
-
从微服务到智能体:分布式系统的下一次演进
本文探讨分布式系统中从微服务向智能体 AI 架构的转变。微服务支持功能分解,而智能体系统侧重于决策分解。这一转变在可观测性、可靠性和系统设计方面引入了新的复杂性,凸显出更新架构模式与实践的必要性。
架构与设计领域全部内容关注主题
AI、机器学习与数据工程领域精选
-
Web 应用的未来:AI 智能体会即时生成 UI 吗?
前 React 核心团队成员 Rachel Lee Nabors 深入探讨本地优先应用背后的架构与理念,探索直接在设备上运行的小语言模型(SLM)如何提供注重隐私、低延迟且成本高效的方案,作为云端托管 LLM 包装器的替代选择。
文化与方法论领域精选
-
最小可行管理者:建立信任、反馈与对齐
在本期播客中,文化与方法论栏目主编 Shane Hastie 与 Built 创始人、《最小可行管理者》作者 Matt Gjertsen 对话,讨论每位首次担任管理者的人都需要的三项基础技能、如何建立信任并给出有效反馈,以及在 AI 时代为何人类领导力技能更加重要。
文化与方法论领域全部内容关注主题
DevOps 领域精选
-
GPU 爆炸式增长与 AI 基础设施挑战
Andrew Martin 讨论了为什么 AI 安全从根本上与 Kubernetes 安全紧密相关。他分享了对不断演变的 AI 威胁态势的见解,涵盖非确定性智能体行为、GPU 供应链漏洞、共享计算风险,以及从提示词防火墙到智能体身份等实用防御策略,帮助在生产环境中保护云原生 AI 工作负载。
DevOps 领域全部内容关注主题
实用链接
选择语言
2026年11月17日 高绩效团队认证 与经验丰富的实践者比较团队设计、交付流程、AI 角色和指标。线上。立即注册。
2027年1月22日 架构师认证 分布式系统、去中心化决策、平台工程和 AI 架构。线上。立即注册。
2026年12月15-16日 QCon AI 纽约 来自构建生产级 AI 的资深工程师,涵盖智能体、上下文、评估、安全和基础设施。注册。早鸟票 11 月 10 日截止。
2027年4月13-16日 QCon 伦敦 早期采用团队已在生产环境中验证的内容,涵盖 15 个工程专题。注册。早鸟票 11 月 10 日截止。
InfoQ 首页新闻JEP 543 在 JDK 28 中最终确定结构化并发,结束七轮预览 Java 线上 InfoQ AI 安全与隐私工程认证(10 月 26 日):在受监管环境中交付 AI?
JEP 543 在 JDK 28 中最终确定结构化并发,结束七轮预览
2026年10月19日 4 分钟阅读 作者
关注 Java Champion 兼软件工程师
关注我们
Youtube 23.2 万关注者Linkedin 2.6 万关注者Instagram 新RSS 1.9 万读者X 5.71 万关注者Facebook 2.1 万点赞Bluesky 新
登录以收听本文
正在加载音频
0:00 0:00
正常 1.25x 1.5x
点赞
JEP 543,结构化并发,已集成到 JDK 28,使 java.util.concurrent 中的 StructuredTaskScope API 达到最终状态,且与 JDK 27 的第七轮预览相比没有 API 变更。对于已经使用 JDK 27 的代码库,迁移只需在不带 --enable-preview 的情况下重新编译。最终确定结束了 Project Loom 所有特性中最长的预览周期。结构化并发最初作为孵化器 API 在 JEP 428(JDK 19)和 JEP 437(JDK 20)中亮相,随后经历了七轮预览:JEP 453(JDK 21)、JEP 462(JDK 22)、JEP 480(JDK 23)、JEP 499(JDK 24)、JEP 505(JDK 25)、JEP 525(JDK 26)和 JEP 533(JDK 27)。在每一次迭代中,核心目标都是将运行在不同线程中的一组相关子任务视为单一工作单元,确保某个子任务失败时取消其他子任务,并且父作用域在所有子线程终止之前不能退出。传统的 ExecutorService 和 Future 流水线不强制这些边界:父方法可以在子任务仍在后台运行时返回,而子任务失败只有在调用方最终调用 Future.get() 时才会暴露。
该 API 以 StructuredTaskScope 为核心,这是一个密封接口,通过静态工厂方法而非公共构造器打开。无参 open() 工厂返回的作用域,其 join() 方法会等待所有子任务成功,在首个失败时取消其余任务,并抛出 ExecutionException:
默认情况下,每次 fork() 调用都会启动一个虚拟线程;join() 是所有者线程等待结果的唯一位置;而 try-with-resources 块末尾的 close() 会取消任何未完成的子任务,并等待这些线程终止。完成策略通过 Joiner 接口定义:Joiner.awaitAllSuccessfulOrThrow() 对应上面的默认策略;对于同构子任务,Joiner.allSuccessfulOrThrow() 直接从 join() 返回一个 List;Joiner.anySuccessfulOrThrow() 返回第一个成功结果并取消其余任务;Joiner.allUntil(Predicate) 在谓词匹配后取消作用域。
最终确定的 API 保留了 JDK 27 中确立的精确形态。JEP 533 引入了第三个类型参数 R_X,使 join() 声明其 Joiner 可以抛出的特定异常类型,而不是抛出预览版专用的 FailedException。在内置的抛异常 Joiner 下,join() 抛出 ExecutionException,这与 Future.get() 长期使用的包装异常相同。从 JDK 26 迁移过来的团队需要做更多修改。他们会看到 FailedException 被 ExecutionException 取代,并且自定义 Joiner 签名中新增了 R_X。此外,StructuredTaskScope.TimeoutException 已被移除,改为通过 CancelledByTimeoutException 原因报告超时;Joiner.awaitAll() 不再可用;onTimeout() 回调已被抽象的 timeout() 方法取代。
自定义策略正是第三个类型参数发挥作用之处。例如,一个等待副本读取达到 quorum 的 Joiner 可以抛出自己的受检异常:
由于该 Joiner 将应用定义的受检异常 QuorumException 声明为其 R_X,join() 会直接抛出它,而不是将其包装在 ExecutionException 中。timeout() 遵循 JDK 27 的约定,抛出同一异常并附带 CancelledByTimeoutException 原因。
超时和配置语义也保持不变。向 open() 传入一个 UnaryOperator,可配置用于可观测性的作用域名称、自定义 ThreadFactory,或在 join() 之前或期间到期时取消该作用域的截止时间:
该 API 对结构同样要求严格。只有打开作用域的线程才能调用 fork() 和 join(),结果只能在 join() 返回后通过 Subtask.get() 读取;而结构性误用,例如不按顺序关闭作用域,会通过 StructureViolationException 快速失败,而不是泄漏线程。对于上下文传播和调试,子任务会继承 ScopedValue 绑定(JEP 506),并在 JSON 线程转储中出现在其父任务之下。有一个细节被有意保持开放:如果多个子任务同时失败,API 并未说明 join() 会报告哪一个失败。Viktor Klang 在代码审查期间提出了这个问题,而该 JEP 在 Oracle 的负责人 Alan Bateman 修改了 Javadoc 的措辞,仅承诺异常来自某个失败的子任务。对于使用 JDK 27 的团队而言,迁移到最终 API 是构建层面的变更,而非代码变更。最终定稿提交仅移除预览注解,不更改任何方法签名,因此团队可以从 javac、测试运行器和启动脚本中移除 --enable-preview,然后在包含该变更的 JDK 28 早期访问构建上重新编译。JDK 28 计划于 2027 年 3 月正式发布。更大的转变在于库和框架的维护者,他们现在可以基于结构化并发进行构建,而无需强迫用户使用预览标志。velo/structured-concurrency 项目已将 JEP 543 API 向后移植到 JDK 25,并提供了在升级后迁移到 JDK 类的迁移方案。
关于作者
A N M Bazlur Rahman
A N M Bazlur Rahman 是一位 Java Champion,也是 Hammerspace 的资深主任软件工程师,专注于 Java 及现代 Java 相关技术。除了日常工程工作之外,Bazlur 还以导师、作者、演讲者和开源贡献者的身份深度参与全球 Java 社区。他创立并目前主持孟加拉国 Java 用户组(JUGBD),自 2013 年以来一直组织聚会和会议以推广 Java 知识。Bazlur 还是 InfoQ 的特约编辑和 Foojay.io 的编辑,这两个平台是全球 Java 专业人士最受尊敬的平台之一。他撰写了多本关于 Java 编程的孟加拉语书籍,包括畅销书《Java Programming》,这些书帮助成千上万的开发者用母语学习这门语言。他的最新英文著作《Modern Concurrency in Java》(O'Reilly Media)探讨了 Java 不断演进的并发模型,包括虚拟线程和结构化并发。
显示更多 显示更少
本文内容属于 Java 主题
关注主题
相关主题:
- 开发 — 关注者:4172 — 关注主题
- Java — 关注者:4964 — 关注主题
- Project Loom — 关注者:7 — 关注主题
- JDK 28 — 关注者:0 — 关注主题
- JEP — 关注者:1 — 关注主题
- 结构化并发 — 关注者:3 — 关注主题
Java 热门内容
- Java 新闻综述:Grails 8、Open Liberty、GlassFish、Infinispan、LangChain4j、Spock
- 本体驱动的可观测性:在 Netflix 规模下构建端到端知识图谱
- Helidon 27 引入重构后的编程模型以及新的消息和数据模块
- Spring Security 7 中的服务端 DPoP 与令牌交换
- Java 新闻综述:JobRunr 9、OpenXava 8、Quarkus、LangChain4j、JNoSQL,以及 Lathe 简介
相关赞助商
- 软件停机的真实成本:量化故障风险的框架
- 重新构想遗留系统迁移:AI 如何加速理解与验证
- Morgan Stanley 如何通过自动化重构扩展软件现代化
- 软件工程中的 AI 现状
- 在工程中扩展 AI 采用(O'Reilly 出品)——立即下载
相关赞助商
发现测试遗漏的缺陷。 Antithesis 使用确定性模拟探索数千种故障场景,在生产环境之前发现难以复现的缺陷。了解其工作原理。
相关内容
- Java 新闻综述:JobRunr 9、OpenXava 8、Quarkus、LangChain4j、JNoSQL,以及 Lathe 简介 2026年10月5日
- Java 新闻综述:TornadoVM 7.0、Groovy 6.0、GraalVM、Hibernate、Quarkus、Gradle、Maven 2026年9月28日
- Java 新闻综述:JDK 27、Open J Proxy、A2A Jakarta、Azul Payara、BoxLang、Netflix ja 2026年9月21日
- JDK 24 之后的虚拟线程:生产环境 Java 发生了什么变化 2026年7月31日
- Helidon 27 引入重构后的编程模型以及新的消息和数据模块 2026年10月16日
- Java 新闻综述:Grails 8、Open Liberty、GlassFish、Infinispan、LangChain4j、Spock 2026年10月12日
- Spring 新闻综述:Boot、Framework、Data、Security、Integration 的第二个里程碑版本 2026年9月29日
- Spring Security 7 中的服务端 DPoP 与令牌交换 2026年10月15日
- Spring Boot 中的后量子密码学:本冲刺可交付的四种模式 2026年8月28日
- 自动改造 JIT 编译器 2026年8月5日
- 自构建代理:一项 LangChain4j 实验 2026年7月24日
相关赞助商
(网络研讨会)Web 应用基于属性的测试入门——预留席位
更多用户操作意味着更多打破数据约束的方式,也意味着要编写更多测试。这场与 Hillel Wayne 合作的 45 分钟网络研讨会介绍基于属性的测试:一种确保任何用户操作序列都不会破坏系统不变量的方法。
- 赞助方
相关内容
- 扩展基于 Java 的实时系统:事件驱动设计的隐藏权衡 2026年6月30日
- AWS 上无服务器 Java 的实用性能调优 2026年6月15日
- 技术采用曲线:二十年后 2026年6月8日
- Kafka 和 Flink 管道中的 Schema 泛滥问题:如何解决 2026年5月25日
- Java 世界中的 MCP:为 LLM 集成带来架构策略 2026年4月27日
- Pinterest 使用事件时间水位线最终确定 PB 级数据分区 2026年10月19日
- 从微服务到代理:分布式系统的下一次演进 2026年10月19日
- EmbeddingGemma 2 扩展到文本之外,支持代码、图像、视频和音频 2026年10月19日
- Buildkite 新增作用域密钥和新的代理式 CI 工具 2026年10月19日
- .NET 11 Release Candidate 2:Go-Live 许可证以及库、F#、MAUI 和 WinForms 的更新 2026年10月19日
- NestJS 12:ESM 包、标准 Schema 验证和原生可观测性 2026年10月19日
相关赞助商
上下文湖与数据湖:现代 AI 的新架构
Tacnode
转变 CI/CD 的 8 种部署模式结构
Harness
相关内容
- Google 采用 Pyrefly 实现更快、更准确的 Python 类型检查 2026年10月18日
- AWS 推出 Well-Architected Agent 预览版 2026年10月18日
- AWS 将在数小时内脱离全球骨干网运行其欧洲主权云 2026年10月18日
- Reverse Engineer Anything 项目将 AI 代理引入二进制分析 2026年10月17日
- Amazon 收购 DuckLabs 并在 Amazon Aurora PostgreSQL 中集成 DuckDB 2026年10月17日
- Google EnvHarness 使自演进代理能够在动态环境中学习 2026年10月16日
- Zod 带来进程内 Schema 编译并将内存占用降低 9 倍 2026年10月16日
- Uber 在其服务网格中实现依赖分析自动化 2026年10月16日
- 生产环境中的 AI:小组成员强调静默失败、Harness 工程和代理治理 2026年10月16日
- Grafana 将 SLO 和错误预算应用于 AI 代理行为 2026年10月16日
- 实践中的演进式架构 2026年10月16日
InfoQ 新闻通讯
每周二发送的 InfoQ 上周内容综述。加入超过 250,000 名资深开发者组成的社区。查看示例
输入您的电子邮件地址
选择您的国家/地区
The InfoQ 新闻简报
每周二发送的 InfoQ 上周内容汇总。加入一个由 25 万多名资深开发者组成的社区。查看示例。
- 快速了解各类创新者与早期采用者技术领域发布的内容
- 了解那些你尚不知晓自己所不了解的内容
- 持续获取你感兴趣主题的最新信息
输入你的电子邮箱地址
选择你的国家/地区
- 我同意 InfoQ.com 按照此隐私声明处理我的数据。
正在构建用于生产环境的 AI 系统?用资深从业者在生产环境中运行智能体、评估、模型服务以及 AI 辅助工程的决策与权衡来检验你的方法。看看哪些做法有效、哪些失败了,以及他们会如何做出不同的选择。把这些经验带回你的团队,从而做出更明智的架构与交付决策。立即注册 QCon AI 纽约 · 2026 年 12 月 15–16 日
首页 创建账号 登录 QCon 大会 活动 为 InfoQ 撰稿 InfoQ 编辑 关于 InfoQ 关于 C4Media 媒体资料包 InfoQ 开发者营销博客 多样性
活动
- 线上 InfoQ AI 辅助工程认证 2026 年 10 月 19 日
- 线上 InfoQ AI 安全与隐私工程课程 2026 年 10 月 26 日
- 线上 InfoQ 高效团队认证 2026 年 11 月 17 日
- QCon 旧金山 2026 年 11 月 16–20 日
- QCon AI 纽约 2026 年 12 月 15–16 日
- 线上 InfoQ 架构师认证 2027 年 1 月 22 日
- QCon 伦敦 2027 2027 年 4 月 13–16 日
- QCon AI 波士顿 2027 年 7 月 8–9 日
关注我们
YouTube 23.2 万关注者 LinkedIn 2.6 万关注者 Instagram 新上线 RSS 1.9 万读者 X 5.71 万关注者 Facebook 2.1 万点赞 Bluesky 新上线
保持了解
一般反馈 feedback@infoq.com
广告合作 sales@infoq.com
编辑事务 editors@infoq.com
市场营销 marketing@infoq.com
InfoQ.com 及所有内容版权 © 2006-2026 C4Media Inc.隐私声明、条款与条件、Cookie 政策、Cookie 设置
关闭 BT