标签:pre inf 线程安全 mis public 它的 nal Fix 安全
public final int getAndIncrement() { for (;;) { int current = get(); // 取得AtomicInteger里存储的数值 int next = current + 1; // 加1 if (compareAndSet(current, next)) // 调用compareAndSet执行原子更新操作 return current; } }
综上,getAndIncrement() 方法并不是原子操作。 只是保证了他和其他函数对 value 值得更新都是有效的。
他所利用的是基于冲突检测的乐观并发策略。 可以想象,这种乐观在线程数目非常多的情况下,失败的概率会指数型增加。
标签:pre inf 线程安全 mis public 它的 nal Fix 安全
原文地址:https://www.cnblogs.com/shoshana-kong/p/10835744.html