【发布时间】:2015-09-04 07:01:06
【问题描述】:
在多线程应用程序中,我必须实现 ConcurrentDictionary<string,Queue<MyClass>>;
队列是否需要为ConcurrentQueue?有必要吗?我会将元素全部出列在同一个线程中,所以我认为不会。我对吗?
编辑:我没有提到我在不同的线程中排队,所以我认为正确的结构将是
Dictionary<string,ConcurrentQueue<MyClass>>。字典键仅在启动时编辑
【问题讨论】:
-
入队怎么样?在您放入字典中的
Queue<MyClass>上是否会有超过 1 个线程同时运行? -
只有在有并发修改和读取操作的情况下,字典才必须是并发的。你的情况是这样吗?
-
就我而言,我有一个线程来填充字典并将新数据排入子队列;然后是多个线程使数据出队,但仅限于选定的键。
-
mmmm 可能我正在做与我应该做的相反的事情:) 也许使用 Dictionary
> 会更好吗?应用程序启动时只修改一次字典键 -
@Andrew Cattaneo:是的,应该反过来。
标签: c# multithreading data-structures concurrency