AtomicInteger 中的 compareAndSet
参考: https://www.cnblogs.com/jiuya/p/10368129.html
AtomicInteger atomicInteger = new AtomicInteger(0);
atomicInteger.compareAndSet(0, 1);//符合期待就改成 新值
System.out.println(atomicInteger.get());
--
1
源码:
/**
*
* @param expect 期望的值 与 内部的值对比 new AtomicInteger(0); 一开始是 0
* @param update 最终值,符合对比就改成最终值
* @return {@code true} if successful. False return indicates that
* the actual value was not equal to the expected value.
*/
public final boolean compareAndSet(int expect, int update) {
return unsafe.compareAndSwapInt(this, valueOffset, expect, update);
}
AtomicInteger atomicInteger = new AtomicInteger(0);
atomicInteger.compareAndSet(1, 2);//符合期待就改成 新值 2 (0,1 不相等)
System.out.println(atomicInteger.get());