gpt4 book ai didi

concurrency - 为什么 ReadOnlyDictionary 不是线程安全的?

转载 作者:行者123 更新时间:2023-12-04 02:07:55 32 4
gpt4 key购买 nike

我正在寻找一个可以从多个线程访问的只读字典。虽然 ConcurrentDictionary 公开了这样的功能,但我不想有开销和奇怪的 API。

.Net 4.5 在提供这样一个类的同时,文档指出只有静态调用是安全的。

我想知道为什么?

最佳答案

ReadOnlyDictionary 只是任何其他字典的包装。因此,它仅与底层字典一样是线程安全的。

特别是,如果有一个线程在修改底层字典而另一个线程从包装器读取,则无法保证安全。

如果你想要一个 ReadOnlyDictionary从各个角度来看都是不可变的,你可以创建一个原始字典的克隆,创建一个 ReadOnlyDictionary包装它,然后不在任何地方保留对克隆的引用。只进行读取操作,它应该是线程安全的。当然,如果键或值类型是可变的,那么就需要担心第二度的“线程不安全”。

关于concurrency - 为什么 ReadOnlyDictionary 不是线程安全的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13684143/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com