OpenJDK Java 20 正式发布,引入作用域值提升多线程编程安全性和性能
【本站】3月22日消息,今天,OpenJDK Java 20 正式发布,达到全面可用性(GA)状态。这意味着开发人员、最终用户和企业可以下载和使用该版本。Java 20 引入了作用域(scope)值作为孵化 API,以允许在线程内和线程间共享不可变数据,并且优先于线程局部变量。Java 作用域值旨在易于使用、易于理解、增强可靠性且高性能。作用域值是一种新的语言结构,它允许声明一个只能在当前范围(extent)内访问的变量。一个范围是一个代码块或一个方法调用栈,它可以包含多个线程。作用域值只能被当前范围内的代码读取,不能被其他范围内的代码读取或修改。因此,作用域值是不可变的,并且可以安全地在线程之间共享。
Java 20 还对 Vector API 进行了第四次孵化更新,以便在运行时编译为支持的 CPU 架构上的最佳 vector 指令。与 JDK 19 相比,Java 20 的 Vector API 没有变化,只是修复了一些错误 Bug 并提高了性能。据本站了解,Vector API 是一种适用于向量化计算的低级别 API,它提供了可移植的直接硬件访问,以便在现代多核 CPU 和协处理器中加速向量化计算。Vector API 还提供了一种基于 JVM 的、跨硬件平台的解决方案,用于编写高效的数学库和数据密集型应用程序。
Java / JDK 20 的第二个预览形式是虚拟线程功能,作为高吞吐量并发应用程序的轻量级线程。JDK 19 上的虚拟线程有一些小的 API 更改以及此预览功能的其他基本改进。虚拟线程功能使应用程序可以在 JVM 上启动数百万个线程,同时只使用少量的内存和操作系统线程。据本站了解,虚拟线程使用协作式多任务处理模型,这意味着它们不会阻塞操作系统线程,从而提高了应用程序的并发性能。 新版本还对记录模式、switch 语句的模式匹配、外部函数和内存 API 以及 JDK / Java 20 的结构化并发进行了更新。Oracle 现在为开发人员、最终用户和企业提供 JDK 20。 |