在Java中9如何创建静态VarHandle?
VarHandle 是对变量的引用,它提供了在各种访问模式(例如plain读/写,volatile读/写,比较和交换)下对变量的访问,类似于java.util.concurrent提供的功能。.atomic 和sun.misc.Unsafe。变量可以是数组元素、实例或类中的静态字段。
在下面的示例中,我们可以创建一个静态变量句柄。
示例
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
public class StaticVarHandleTest {
static int field;
static int[] array = new int[20];
static final VarHandle FIELD, ARRAY;
static {
try {
FIELD = MethodHandles.lookup().in(StaticVarHandleTest.class).findStaticVarHandle(StaticVarHandleTest.class, "field", Integer.TYPE);
ARRAY = MethodHandles.arrayElementVarHandle(int[].class);
} catch(Exception e) {
throw new InternalError(e);
}
}
public static void main(String args[]) throws Exception {
int i = (int)FIELD.getVolatile();
System.out.println(i);
FIELD.getAndAdd(5);
System.out.println(field);
System.out.println(ARRAY.getAndAdd(array, 5, 5));
System.out.println(ARRAY.getAndAdd(array, 5, 5));
}
}输出结果
0 5 0 5
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短