范围值使开发人员能够在线程内部和跨线程存储和共享不可变数据。这个新API是在Java 20中作为孵化器预览特性引入的,由JEP 439提出。
在本教程中,我们将首先将范围值与线程局部变量进行比较,后者是一个旧的API,具有类似的目的。然后,我们将看看如何应用范围值在线程之间共享数据,重新绑定值,以及在子线程中继承它们。接下来,我们将看看如何在经典Web框架中应用范围值。
最后,我们将看看如何在Java 20中启用这个孵化器特性以进行实验。
2. 动机
复杂的Java应用程序通常包含需要在它们之间共享数据的几个模块和组件。当这些组件在多个线程中运行时,开发人员需要一种在它们之间共享不可变数据的方式。
大约 7 分钟