ConcurrentDictionary是如何访问的以及如何序列化它?
我以前从未使用过 ConcurrentDictionary 对象,并且对此有几个问题:
-
我是否正确地认为多个线程可以同时从字典中读取,但如果正在写入该对象,则没有其他线程可以访问它?
-
这个对象可以序列化到磁盘吗?
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,您可以安全地从多个线程读取和写入。当然,在内部,我认为发生了一些同步,但性能损失应该很小,您不应该担心它并进行任何额外的同步。
取决于您使用什么序列化器。
XmlSerializer
对IDictionary
接口)No, you can safely read and write from multiple threads. Of course internally I suppose that there is some synchronization happening but the performance penalty should be small and you shouldn't be worried about it and do any additional synchronization.
Depends on what serializer you use.
XmlSerializer
is allergic to theIDictionary<TKey, TValue>
interface)这是不可观察的,您可以从多个线程读取和写入,并让类担心同步。
是的,它标有
[Serialized]
。您始终可以提取
对并使用您喜欢的任何序列化器。This is not observable, you can read and write from multiple threads and let the class worry about the synchronization.
Yes, it is marked with
[Serializable]
. And you can always extract the<K,V>
pairs and use any Serializer you like.