AtomicInteger中的那些“set”方法

时间:2015-07-19 14:48:32

标签: java thread-safety atomicinteger

我知道compareAndSet()中的AtomicInteger是一种核心方法,它采用一种聪明的方法来原子地更新AtomicInteger封装的整数原语的当前值。只有在确定另一个线程尚未更新它之后才会这样做,如果没有另外检测到,则放弃。

另外,我知道,Java API文档中AtomicInteger标记为“atomic”的方法在内部调用compareAndSet()

compareAndSet()中表达了AtomicInteger的必要性之后,我的问题是:

    1. 为什么weakCompareAndSet()中存在AtomicInteger?为什么在compareAndSet()可用时我会选择使用它?根据Java API,
        

      它可能会失败并且不提供排序保证,因此很少是compareAndSet的合适替代方案。

    1. 令人惊讶的是,set()中有一个原始的AtomicInteger方法,它甚至没有被标记为原子!它在像AtomicInteger这样的课程中做了什么?!

0 个答案:

没有答案