我正在寻找.NET中的线程池库
我已经拥有了自己的解决方案,支持所有这些,但我不确定它是否是最好的实现。所以我想查看其他库。
这将主要用于HTTP请求,因此更少的CPU响应等待。这意味着可以接受100个并发线程。
答案 0 :(得分:3)
我最近见过的最好的是Jeffery Richter的PowerThreading library。您可能还想查看this Channel 9 video
PowerThreading库的优点在于它通过允许在多个请求之间共享单个线程来有效利用ThreadPool。
答案 1 :(得分:2)
为什么不直接使用.NET ThreadPool?
答案 2 :(得分:2)
Retlang岩石!或者来自Ayende的Rhino Queues。
答案 3 :(得分:2)
查看Microsoft的CCR。它有一个非常高效的线程池,并具有原语,可以直接处理许多异步I / O请求。
在它的模型下,提供你的I / O是真正异步的,你需要的线程数正好是盒子上的核心数量。更多的是浪费。
答案 4 :(得分:1)
如果您有很多任务,请考虑实施像BizTalk这样的service bus或第三方中间件平台。如果那太多了,那么请Message Queuing。
此外,如果您有SQL Server并希望更容易备份和管理队列,请考虑SQL Server Service Broker。
答案 5 :(得分:1)
我和你一样有必要,但我的问题以不同的方式表达,以达到非常相似的答案: Is there any way for executing a method multiple times, but managing connections/threads? (.NET)
答案 6 :(得分:1)
.Net 4.0正在添加任务并行库,它将直接支持这一点。如果您不了解它,它既可以作为基于.Net 3.5的独立CTP,也可以作为去年秋天推出的Visual Studio 2010 CTP的一部分。这是team blog的链接,其中包含更多信息和指向下载的指针。
答案 7 :(得分:0)
我在CodeProject上找到了一个关于ThreadPool的interesting take。它是一个实例化的ThreadPool(因此,不是跨线程的静态和碎片),它有几个功能来定制性能。
答案 8 :(得分:0)
感谢所有的回复,在浏览了其他图书馆后,我发现他们所看到的一切都过于复杂。
我坚持使用自己的实现,这基本上是围绕Threading.Thread()
的阻塞队列实现,它可以正常工作。