关于Atomic

应该来说,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预测的那样,并发技术将进入主流,这个过程会持续数年。

posted on 2006-11-14 21:24  温少  阅读(1600)  评论(0编辑  收藏  举报

导航