💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

JEP 525 完成了即将发布的 JDK 26 的结构化并发第六次预览,旨在简化并发任务管理。新版本引入超时处理和自定义连接器,允许在超时情况下返回部分结果,同时对 API 进行了小幅改进,保持核心模型稳定,增强了相关任务的管理。

🎯

关键要点

  • JEP 525 完成了即将发布的 JDK 26 的结构化并发第六次预览,旨在简化并发任务管理。
  • 新版本引入超时处理和自定义连接器,允许在超时情况下返回部分结果。
  • 结构化并发将相关任务视为一个工作单元,改善了取消、错误传播和可观察性。
  • API 以 java.util.concurrent.StructuredTaskScope 和 Joiner 抽象为中心,控制如何组合从分叉子任务中获得的结果。
  • 第六次预览专注于对 API 的小幅改进,而核心模型保持稳定。
  • 新版本的 Joiner 提供了 onTimeout() 回调,允许自定义连接器在超时情况下处理结果。
  • Joiner.allSuccessfulOrThrow() 现在直接从 scope.join() 返回 List<T>,减少了常见用例的样板代码。
  • anySuccessfulResultOrThrow() 被重命名为 anySuccessfulOrThrow(),以提高简洁性和清晰度。
  • StructuredTaskScope.open() 的重载现在期望 UnaryOperator<Configuration>,以防止类型混合。
  • 基本使用模式保持不变,确保所有子任务在块退出时完成或取消。
  • 自定义连接器可以在超时情况下处理并返回部分结果,而不是抛出异常。
  • 第六次预览没有显著改变 API,而是专注于减少摩擦和提高灵活性。
  • 结构化并发是 Project Loom 更广泛并发路线图的关键组成部分。
  • 开发者可以通过启用预览功能在 JDK 26 早期访问版本中实验结构化并发。
➡️

继续阅读