我有一本带有固定键集合的字典,是我在程序开始时创建的。后来,我有一些线程用值更新字典。
- 一旦线程启动,就不会添加或删除任何对。
- 每个线程都有自己的密钥。意义,只有一个线程会访问某个键.
- 该线程可能更新值.
问题是,我应该锁定字典吗?
UPDATE:
谢谢大家的解答,
当我问这个问题时,我试图简化情况,只是为了理解字典的行为。
为了让自己清楚,这是完整版本:
我有一本包含约 3000 个条目(固定键)的字典,并且有多个线程访问该键(共享资源),但我知道一次只有一个线程正在访问一个键条目。
那么,我应该锁定字典吗?并且 - 当您现在拥有完整版本时,字典到底是正确的选择吗?
Thanks!
来自 MSDN
只要不修改集合,字典就可以同时支持多个读取器。
要允许多个线程访问集合以进行读写,您必须实现自己的同步。
对于线程安全的替代方案,请参阅ConcurrentDictionary<TKey, TValue>.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)