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

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