无锁通过比较交换(CAS)来保证线程安全。
AtomicInteger
方法
public final int get() //取得当前值
public final void set(int newValue) //设置当前值
public final int getAndSet(int newValue) //设置新值,并返回旧值
public final boolean compareAndSet(int expect,int u) //如果当前值为expect,则设置为u
public final int getAndIncrement() //当前值加1,返回旧值
public final int getAndDecrement() //当前值减1,返回旧值
public final int getAndAdd(int delta) //当前值增加delta,返回旧值
public final int incrementAndGet() //当前值加1,返回新值
public final int decrementAndGet() //当前值减1,返回新值
public final int addAndGet(int delta) //当前值增加delta,返回新值
AtomicReference
无锁的对象引用。
AtomicStampedReference
带有时间戳的对象引用。
数组无锁
AtomicIntegerArray:整数数组。
AtomicLongArray:long型数组。
AtomicReferenceArray:普通对象数组。