回顾那些可能不知道 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
库。