变量句柄

变量句柄(variable handle)是一种对变量、静态域或数组元素的动态型引用,使你可以多种不同的模式访问该变量。
例如,可以在并发应用程序中对变量进行访问保护,实现对该变量的原子访问。

在此之前,你只能通过原子变量获得这样的行为,但是现在可以使用变量句柄获得同样的功能,而不需要采用任何同步机制。

这是 Java 9 中引入的一种新特性,由 VarHandle 类提供。

访问方法

变量句柄有如下几种访问方法。

样例代码

J15VariableHandles
执行本例时,将看到如何使 safeValue 属性的值总如预期一样为 0,但是 unsafeValue 属性的值每次执行时都不同,因为会遇到数据竞争条件。