public final int incrementAndGet() {
for (;;) {
int current = get(); // 获取旧值
int next = current + 1; // 新值
// 比较成功后赋值
if (compareAndSet(current, next))
return next;
}
}
JDK8源码如下,看着好像不会,具体不是太清楚,毕竟unsafe作了啥操作我也不知道啊
public final int incrementAndGet() {
return unsafe.getAndAddInt(this, valueOffset, 1) + 1;
}
看AtomicnIteger的如下源码,觉得它会存在ABA问题 public final int incrementAndGet() { for (;;) { int current = get(); // 获取旧值 int next = current + 1; // 新值 // 比较成功后赋值 if (compareAndSet(current, next)) return next; } } JDK8源码如下,看着好像不会,具体不是太清楚,毕竟unsafe作了啥操作我也不知道啊 publi