【发布时间】:2010-09-21 22:53:35
【问题描述】:
为那些可能不了解 Java API 的 .NET 专家回顾一下:
Java 中的ConcurrentHashMap 具有用于常见 Map 修改操作的原子方法(即不需要外部锁定),例如:
putIfAbsent(K key, V value)
remove(Object key, Object value)
replace(K key, V value)
它还允许在没有锁定的情况下对键集进行迭代(它在迭代开始时获取一个副本)并且get() 操作通常可以与对put() 的调用交错而不阻塞(它使用细粒度的锁条带IIRC )。
无论如何,我的问题是:.NET 有等效的 Dictionary 实现吗?
我想更笼统地说,我很想知道 .NET 是否有一组更通用的线程安全集合库。或一般的并发实用程序 - 相当于 Doug Lea 的 java.util.concurrent 库。
【问题讨论】:
-
这里真的需要java标签吗?
-
Georgy - 你是对的 - 这是一个 .net 问题,而不是 Java 问题。标记已删除。
-
我的项目concurrent.codeplex.com 有一个分片字典,它允许多个读取器和写入器,并允许对某些值进行交易。虽然它正在大力开发中......
标签: .net concurrency dictionary map