Nic*_*ico 3 .net c# multithreading dictionary
我正在阅读C# Cookbook 中的并发,这本书告诉我:
ConcurrentDictionary<TKey, TValue>当您有多个线程读取和写入共享集合时,这是最好的。如果更新不是恒定的(如果它们更罕见),那么这ImmutableDictionary<TKey,TValue>可能是一个更好的选择。
我知道 Add or Remove a large immutable collection 可能很慢,我的问题是,它们之间还有其他区别吗?既然它们都是线程安全的,那么ImmutableDictionary当更新不是恒定的时,为什么是更好的选择呢?
这两个类ConcurrentDictionary,并ImmutableDictionary进行了比较公正的,因为原因很简单,都是线程安全的。
但是,ImmutableDictionary用于多线程并不是一个好主意。它旨在表示应加载一次且以后不应更改/修改的数据。任何修改都会导致创建 的新实例ImmutableDictionary,这并不是真正有效的。
| 归档时间: |
|
| 查看次数: |
2193 次 |
| 最近记录: |