AtomicReferenceFieldUpdater
一个基于反射的工具类,它能对指定类的指定的volatile引用字段进行原子更新。(注意这个字段不能是private的)
通过调用AtomicReferenceFieldUpdater的静态方法newUpdater就能创建它的实例,该方法要接收三个参数:
包含该字段的对象的类
将被更新的对象的类
将被更新的字段的名称
下面是例子:
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";
}
结果输出是:
test