jix*_*xox 2 c# dictionary thread-safety concurrentdictionary
如果我有一个ConcurrentDictionary对象,当在外部执行操作时,ConcurrentDictionary<int, Dictionary<string, string>>() dict;嵌套是否被锁定?DictionaryConcurrentDictionary
场景:外部人员ConcurrentDictionary outerDict正在执行
outerDict.Add(42, new Dictionary<string, string>())
在一个线程上,并且在另一个线程上(同时),内部Dictionary正在执行
outerDict[30].Add("hello", "world")。
上述场景中外层ConcurrentDictionary和内层的修改是否都是并发Dictionary,还是同时进行?
当然不是,它们是具有不同访问规则的不同词典。
不过,您的示例很好,因为您正在从不同的线程访问不同的字典。如果您要这样做:
outerDict[30]["a"] = "b"; // in thread 1
outerDict[30]["g"] = "h"; // in thread 2
Run Code Online (Sandbox Code Playgroud)
你很快就会遇到问题。
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |