Atomic
AtomicInteger/AtomicBoolean/AtomicLong/AtomicReference
AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray
AtomicIntegerFieldUpdater/AtomicLongFieldUpdater/AtomicReferenceFieldUpdater
AtomicMarkableReference/AtomicStampedReference
AtomicMarkableReference类描述的一个<Object,Boolean>的对,可以原子的修改Object或者Boolean的值,这种数据结构在一些缓存或者状态描述中比较有用。这种结构在单个或者同时修改Object/Boolean的时候能够有效的提高吞吐量。
AtomicStampedReference类维护带有整数“标志”的对象引用,可以用原子方式对其进行更新。对比AtomicMarkableReference类的<Object,Boolean>,AtomicStampedReference维护的是一种类似<Object,int>的数据结构,其实就是对对象(引用)的一个并发计数。但是与AtomicInteger不同的是,此数据结构可以携带一个对象引用(Object),并且能够对此对象和计数同时进行原子操作。
AtomicInteger vs AtomicIntegerFieldUpdater
一般情况下用AtomicInteger足够了
http://stackoverflow.com/questions/6671020/java-atomic-access-to-field-within-object
http://www.javamex.com/tutorials/synchronization_concurrency_7_atomic_updaters.shtml