AtomicReferenceFieldUpdater // 域 字段

    AtomicIntegerFieldUpdater

    AtomicLongFieldUpdater

    利用字段更新器,可以针对对象的某个域(Field)进行原子操作,只能配合 volatile 修饰的字段使用,否则会出

    现异常

    1. public class MyTest1 {
    2. private volatile int field;
    3. public static void main(String[] args) {
    4. AtomicIntegerFieldUpdater fieldUpdater =
    5. AtomicIntegerFieldUpdater.newUpdater(MyTest1.class, "field");
    6. MyTest1 test5 = new MyTest1();
    7. fieldUpdater.compareAndSet(test5, 0, 10);
    8. // 修改成功 field = 10
    9. System.out.println(test5.field);
    10. // 修改成功 field = 20
    11. fieldUpdater.compareAndSet(test5, 10, 20);
    12. System.out.println(test5.field);
    13. // 修改失败 field = 20
    14. fieldUpdater.compareAndSet(test5, 10, 30);
    15. System.out.println(test5.field);
    16. }
    17. }