public final int incrementAndGet() {
for (;;) {
int current = get();
int next = current + 1;
if (compareAndSet(current, next))
return next;
}
}
这是自增操作,定义: CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做
预期值是next吗? 内存值是current?
假如1个线程自增时没有其他线程竞争,那么预期值应该比内存值大1啊,怎么会预期值和内存值相同?