Bootstrap

AtomicReference类浅析

AtomicReference类

JUC中封装了对基本类型的原子操作类,那么如果我们想要保正一个对象的原子性行为呢?这里AtomicReference就派上了用场。

使用起来与原子类基本一样。

public class AtomicReferenceDemo {
    public static void main(String[] args) {

        User user1 = new User(20, "T1");
        User user2 = new User(21, "T2");

        AtomicReference<User> atomicReference = new AtomicReference<>();
        atomicReference.set(user1);

        //如果atomicReference预期值等于user1 则将其更新为user2
        System.out.println(atomicReference.compareAndSet(user1, user2));//true

        //如果atomicReference预期值等于user1 则将其更新为user2 这里会更新失败
        System.out.println(atomicReference.compareAndSet(user1, user2));//false

    }
}
;