繁体   English   中英

谁能向我解释这个IOCP图?

[英]Can anyone explain to me this IOCP diagram?

在《 WinSock编程基础:编译》一书中,有针对IOCP的以下图表:

在此处输入图片说明

我知道完成通知到达完成端口,并且四个排队的线程调用GetQueuedCompletionStatus()来获取完成数据包。 但是,在完成端口下方显示的其他两个工作线程有什么作用,难道这些线程也调用GetQueuedCompletionStatus()但它们已经收到完成数据包并且正在处理它吗?

正如马丁·詹姆斯(Martin James)在评论中所说的; 排队线程和工作线程都是已调用GetQueuedCompletionStatus()线程。 被指定为工作线程的线程已经完成处理,并且正在这样做。 被指定为排队线程的线程正在等待完成更多操作,或者由于创建它的并发值而被IOCP阻塞。 如果稍后,它们将等待工作线程之一阻塞IOCP API知道的API。 如果一个工作线程完成了对当前完成的处理,则它将进入不活动线程队列的最前面(因此,允许IOCP提供其LIFO功能,该功能可以使活动线程保持活动状态,从而有助于减少上下文切换和内存故障)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM