质量推广预警 - JEP 425 虚拟线程(预览)测试
David Delabassee 于 2022 年 5 月 16 日
该 OpenJDK 质量小组 推广使用 OpenJDK 早期访问版本测试 FOSS 项目,以提高发布版本的整体质量。此预警是 定期沟通 的一部分,发送给参与的项目。要了解有关该计划以及如何加入的更多信息,请查看 此处。
JEP 425 虚拟线程(预览)测试
Project Loom 的目标是在 Java 平台中引入易于使用、高吞吐量的轻量级并发模型,以及相关的新的并发编程模型。
在 Project Loom 中开发的 JEP 425 将虚拟线程引入 Java 平台。虚拟线程是轻量级线程,可以极大地减少编写、维护和观察高吞吐量并发应用程序的工作量。JEP 425 现已集成到 OpenJDK 主线中,这意味着从 JDK 19 早期访问版本 22 开始,JDK 19 中提供了虚拟线程(预览)支持。
Project Loom 越来越近了!
行动号召
已经进行了大量的测试,但我们鼓励开发人员使用最新的 JDK 19 早期访问版本测试他们的程序,即使他们不打算在短期内使用虚拟线程。
有两种方法可以测试程序
- 更新其代码以使用虚拟线程……或
- 只需在启用预览功能的情况下测试现有的未更改代码。
这两种方法都应该产生有价值的反馈。
将现有代码库改编为使用 虚拟线程 不仅仅限于更新代码以使用虚拟线程而不是平台线程,因为还有一些额外的注意事项。例如,不应该将虚拟线程池化,严重依赖 线程局部变量 的代码将需要一些工作才能迁移到每个任务都有一个新线程的世界中,等等。
鉴于存在一些细微的行为变化,并且 ThreadGroup
已降级,因此测试现有的程序原样,即不使用虚拟线程,但在运行时启用预览功能,也将很有用。有关更多详细信息,请查看 JEP 425 - 风险和假设。
Project Loom 发布的 EA 版本与最新的 JDK 19 EA 版本之间的一个区别是,需要在运行时使用 --enable-preview
标志才能使用新的 API。无法使用核心反射来使用 API 以避免需要 --enable-preview
。
最后,一些工具,尤其是依赖 JVM TI 代理的工具,可能尚未完全准备好使用虚拟线程。
应将适当的反馈发送到 loom-dev 邮件列表。
资源
- JEP 425:虚拟线程(预览)
- JDK 19 早期访问 版本 和 JavaDoc
- Project Loom wiki
- 适用于 Java 平台的现代、可扩展的并发
- 虚拟线程深入探讨 - Inside Java 新闻播报]
- 更多 Loom 材料 可以在 Inside Java 上找到