提议的 Java API 将允许跨线程共享不可变数据

根据 OpenJDK 领域目前正在考虑的计划,Java 可以获得跨线程共享不可变数据的能力。

OpenJDK 对范围局部变量的提议,目前是一个孵化 API,将提供一个编程模型来在线程内和与子线程共享数据。 该提案指出,范围局部变量优于线程局部变量,尤其是在使用大量虚拟线程时。

该提案列出了孵化 API 背后的四个目标:

    易于使用,以简化有关数据流的推理。 可理解性,使共享数据的生命周期从代码的语法结构中可见。 健壮性,确保调用者共享的数据只能由合法的被调用者检索。 性能,将共享数据视为不可变的,以允许大量线程共享并启用运行时优化。

extent local-variables API 当前不适合任何特定版本的标准 Java。 它最早可能出现在 Java 20 中,将于 2023 年 3 月发布。Java 19 或 Java Development Kit 19 将于 9 月 20 日发布,对新功能关闭。

extent-local 变量计划不涉及更改 Java 编程语言本身。 也无意要求从线程局部变量迁移,或弃用现有的 ThreadLocal API。

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注