IOCP 是 Windows 平台专有的高并发异步 I/O 机制IOCP(输入输出完成端口)是 Windows 平台专有的高并发异步 I/O 机制,全称 Input/Output Completion Port,最早在 Windows NT 3.5 版本引入,主要用于 C/S 架构网络服务器高效处理大量并发连接 。
IOCP 是怎么工作的
线程池模型:系统维护一个线程池,工作线程数量通常与 CPU 核心数相同,避免传统"一个连接一个线程"导致的线程切换开销过大问题 。
双队列机制:
I/O 完成队列(FIFO):异步 I/O 操作完成后,完成包按先进先出顺序进入队列。
等待线程队列(LIFO):调用 GetQueuedCompletionStatus 的线程按后进先出顺序阻塞等待,减少线程切换代价。
完成通知流程:应用程序投递异步 I/O 请求后无需等待,系统在完成时自动将完成包放入队列,工作线程从队列取出完成包并处理数据 。
第三方库:
asio/libuv