Dictionary选型
Dictionary FrozenDictionary ReadOnlyDictionary ConcurrentDictinary
ConcurrentDictinary
如果会多线程更改字典,那必须要使用ConcurrentDictinary。
注意:不仅增删字典元素是线程不安全的,即便只更新字典中肯定存在的Key的Value也不是线程安全的!
更新Key的Value并不是简单的定位到key对应的Value引用完成原子赋值,因为字典的Value是一个哈希桶(链表),更新值
并发改时,安全字典
并发改包括,增删元素,更新Value.
注意:更新value也是线程不安全的,即使一个字典被创建后永远不进行增删元素,每次更新值时键都存在,也不是线程安全的操作,因为要维护哈希桶的索引。
FrozenDictionary
创建成本高,适合花成本一次创造,后续高频率使用
ReadOnlyDictionary
字典的视图。不能增删元素和更新Value. 作为返回的API供外界查看元素但是防止误修改。

浙公网安备 33010602011771号