Hello World

吞风吻雨葬落日 欺山赶海踏雪径

0%

java原子更新器AtomicReferenceFieldUpdater的使用

AtomicReferenceFieldUpdater一个基于反射的工具类,它能对指定类的指定的volatile引用字段进行原子更新。(注意这个字段不能是private的)

通过调用AtomicReferenceFieldUpdater的静态方法newUpdater就能创建它的实例,该方法要接收三个参数:

  • 包含该字段的对象的类
  • 将被更新的对象的类
  • 将被更新的字段的名称

下面是例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class App  
{
public static void main(String[] args) throws Exception
{
AtomicReferenceFieldUpdater updater=AtomicReferenceFieldUpdater.newUpdater(Dog.class,String.class,"name");
Dog dog1=new Dog();
updater.compareAndSet(dog1,dog1.name,"test") ;
System.out.println(dog1.name);

}

}

class Dog
{
volatile String name="dog1";

}

结果输出是:

1
test