CAS比较并交换
蚂蚁花呗一面(一个小时)(14题)
讲一讲AtomicInteger,为什么要用CAS而不是synchronized?
前面视频讲到为什么保证在多线程环境下保证i++正确,
我们可以使用以下方法:
AtomicInteger atomicInteger=new AtomicInteger();
public void addMyAtomic() {
atomicInteger.getAndIncrement();
}
隔离
在AtomicInteger.java中,
public final int getAndIncrement() {
return unsafe.getAndAddInt(this,valueOffset,1);
}
分隔