Multithreading 螺纹再用途

Multithreading 螺纹再用途,multithreading,Multithreading,我们是否可以将完成端口线程(用于异步I/O操作)重新指定为CLR进程线程池中的工作线程 如果这是幼稚的,那么有人可以建议我如何最大限度地使用线程池线程,以减少工作队列中堆叠的工作项的数量。IOCP线程已经是排序为“工作线程”的线程-它们从队列中获取输入并对接收到的项执行操作。如果您希望避免使用另一个线程池来处理来自网络驱动程序的“正常”IOCP完成对象以外的项目,那么没有任何东西可以阻止您“手动”将对象排队到IOCP队列,请求IOCP池线程执行其他操作。我现在忘记了实际的API,但看来应该没有问

我们是否可以将完成端口线程(用于异步I/O操作)重新指定为CLR进程线程池中的工作线程


如果这是幼稚的,那么有人可以建议我如何最大限度地使用线程池线程,以减少工作队列中堆叠的工作项的数量。

IOCP线程已经是排序为“工作线程”的线程-它们从队列中获取输入并对接收到的项执行操作。如果您希望避免使用另一个线程池来处理来自网络驱动程序的“正常”IOCP完成对象以外的项目,那么没有任何东西可以阻止您“手动”将对象排队到IOCP队列,请求IOCP池线程执行其他操作。我现在忘记了实际的API,但看来应该没有问题了

我记得在服务器调优中使用了这样一种机制——通过将指示接收IOCP池线程终止的项目排入队列来减少IOCP线程的数量

也就是说,我不确定这样的机制是否会显著提高吞吐量——这项工作必须在某个地方完成,而且避免额外的线程池可能不会有多大帮助。根据经验,作为一种通用的线程间通信机制,IOCP队列的性能要比Windows消息队列差(因为只有一个线程可以等待,所以对于线程池来说毫无用处)和基于用户空间CS/信号量的P-C队列

Rgds,
马丁

嗨,马丁,谢谢你的支持。就连我也听说了提议的方法。但在谷歌搜索之后,我陷入了困境,没有取得足够的进展。