我应该为IOCP创建多少个线程?

时间:2015-03-04 02:30:07

标签: c++ sockets winapi network-programming iocp

我已经读过传递给NumberOfConcurrentThreads函数的CreateIoCompletionPort()参数的理想数字是0,这将转换为核心数。

但是,我应该在完成端口上等待多少个线程,它是否应该与内核数量相同?

1 个答案:

答案 0 :(得分:1)

这个问题无法用最终数字来回答,因为该数字将取决于代码设计中的许多其他因素。诸如存在多少其他线程,此IOCP的线程工作的频率导致它们阻塞的频率,实际拥有的核心数等等因素。

我首选的方法是使外部可配置的线程数量,以便您可以在代码工作后对其进行分析并调整线程数。

在许多设计中,使用现代硬件,我发现少量线程绰绰有余,而且这个数字通常比核心数少得多。