應該來說,util.concurrent包中提供的atomic,包括兩部分:
1、atomic值對象,例如AtomicInteger、AtomicLong等。常用作計數器。
2、AtomicReference
3、一些內部使用Lock提供的compareAndSet操作。例如ConcurrentHashMap的putIfAbsent。
.NET中也提供了類似的功能,InterLocked類提供著完全的能力。
這是一種思想,提供原子操作,把兩個以上的操作合并,使得調用者不需要使用Lock,使得程序結構變得簡單,減少出錯的可能,包括減少死鎖發生的可能,程序也因此獲得更好的性能。
將會有更多的數據結構支持atomic操作,JDK 1.5提供了支持atomic操作的ConcurrentMap、JDK 1.6提供了支持atomic的ConcurrentNavigableMap。
如同Herb Sutter預測的那樣,并發技術將進入主流,這個過程會持續數年。

文章來源:
http://www.cnblogs.com/jobs/archive/2006/11/14/560416.html