【发布时间】:2018-07-26 06:08:06
【问题描述】:
我正在使用 BlockingCollection 类实现的队列来实现生产者-消费者模型队列。
我有多个线程以指定的顺序添加元素(仅针对每个线程),一个线程从中取出元素。
我不关心在不同线程之间添加的元素的顺序,但我希望每个线程添加的元素按照添加的顺序排列。
BlockingCollection 类是否保证这一点?我用谷歌搜索了它,但找不到我的问题的明确答案。
【问题讨论】:
-
BlockingCollection包装了另一种连接类型。您是否在其构造函数中明确提供了一个?如果是这样,看看它的保证。如果没有,它将使用ConcurrentQueue- 所以请查看该类型的保证。 -
是的,我提供了 CocurrentQueue。如果每个线程都应该保证元素顺序,因为它是 FIFO .. 我是对的吗?
标签: c# .net multithreading producer-consumer blockingcollection