这些类(AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference)支持以原子方式更新值。
注意:这些类不能简单的当作 Boolean, Integer, Long 等的替身。
一,其中比较重要的方法包括:
boolean compareAndSet(boolean expect, boolean update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。
boolean getAndSet(boolean newValue)
以原子方式设置为给定值,并返回以前的值。
boolean set(boolean newValue)
无条件地设置为给定值。
boolean weakCompareAndSet(boolean expect, boolean update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。可能意外失败并且不提供排序保证,因此几乎只是 compareAndSet 的适当替代方法。
二,类 AtomicLong 和 AtomicInteger(方法参数和返回值是long)提供了原子增量方法:
int addAndGet(int delta)
以原子方式将给定值与当前值相加,返回的是更新后的值。
int getAndAdd(int delta)
以原子方式将给定值与当前值相加,返回的是以前的值
int decrementAndGet()
以原子方式将当前值减 1,返回的是更新后的值。
int getAndDecrement()
以原子方式将当前值减 1,返回的是以前的值。
int getAndIncrement()
以原子方式将当前值加 1,返回的是以前的值。
int incrementAndGet()
以原子方式将当前值加 1,返回的是更新后的值。
三,AtomicIntegerArray,AtomicLongArray 和 AtomicReferenceArray
以用原子方式更新数组。