简单的问题,复杂的问题:
在单个套接字上从网络传入大量数据,比一个线程消耗的速度快。事实上,即使将工作分发到ThreadPool
也需要花费太多时间。
所以我将传入的项添加到BlockingCollection<T>
,然后在单独的线程上发送它们。
然而,在高使用率时,它仍然需要很长时间。我尝试剥离BlockingCollection<T>
和ConcurrentQueue<T>
实现以删除一些无关的功能,但它没有什么区别。
什么样的单写多读并发队列实现可以击败BlockingCollection<T>
?必须尽快消耗数据。