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

标签 c++ sockets winapi network-programming iocp

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

但是,我实际应该创建多少个等待完成端口的线程,它是否也应该与核心数相同?

最佳答案

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

我的首选方法是使线程数可在外部进行配置,这样您就可以在代码运行后分析代码并调整线程数。

在许多设计和现代硬件中,我发现少量线程就足够了,而且这个数量通常比核心数量少得多。

关于c++ - 我应该为 IOCP 创建多少个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28845697/

相关文章:

c++ - 如果进程崩溃,映射文件会怎样?

C++ 计算器跳过 Else 语句

c - 当我有 AF_UNIX 的 socket() 时,为什么我需要 socketpair()?

sockets - 为什么 UDP 编写器要拨号?

c++ - 将 x86 代码注入(inject) x64 进程

c - 我如何在 XP 中使用 c 程序访问磁盘的原始扇区?

C++代码优雅

C++-十六进制反转位

java - 套接字:将无符号字符数组从 C 传递到 JAVA

c# - 是否有可能将虚拟打印机与物理打印机区分开来?