我之前从未使用过ConcurrentDictionary对象,并且对它有几个问题:
我是否正确多个线程可以同时从字典中读取,但如果正在写入,其他任何线程都无法访问它?
此对象可以序列化为磁盘吗?
感谢。
答案 0 :(得分:13)
我是否正确多个线程可以同时从字典中读取,但是如果正在写入,则没有其他线程可以访问它?
不,您可以安全地从多个线程读取和写入。当然在内部我认为有一些同步发生但性能损失应该很小,你不应该担心它并进行任何额外的同步。
此对象可以序列化为磁盘吗?
取决于您使用的序列化程序。
XmlSerializer
对IDictionary<TKey, TValue>
界面过敏)答案 1 :(得分:3)
- 我是否正确多个线程可以同时从字典中读取,但如果正在写入,其他任何线程都无法访问它?
醇>
这是不可观察的,您可以从多个线程读取和写入,并让该类担心同步。
- 此对象可以序列化为磁盘吗?
醇>
是的,它标有[Serializable]
。并且您始终可以提取<K,V>
对并使用您喜欢的任何序列化程序。