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
}
}