windows – IO完成端口是否在完成端口报告之前或之后生成新线程
我对IO完成端口完成时实际发生的事情感到有些困惑.
我假设Win API允许访问IOCP队列,该队列能够以某种方式对具有特定句柄的回调引用进行排队(或堆栈)(比如说套接字). 我的问题是,来自线程池的线程是在接收到中断时产生的,还是在调用Win API时实际产生的,有效地使线程处于等待状态,直到它被IOCP唤醒队列? 编辑: 解决方法
将I / O完成端口简单地想象为一个线程安全队列可能更容易,操作系统在完成后将重叠操作的结果放入其中.
您创建IOCP,然后创建一些线程,这些线程调用一个函数来从此队列中删除项目.通常这是GetQueuedCompletionStatus().这个函数实际上阻塞了你的线程,直到IOCP(队列)中有东西,然后允许你的线程检索那些东西并运行. 您将文件句柄和套接字与IOCP关联,这只是意味着一旦关联它们的重叠完成将被放置在IOCP(队列)中. 它比那更复杂,但这就是你应该思考的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-installer – Installshield – 需要删除带有“错误
- .net – 我可以让我的服务让Windows无法入睡吗?
- .net – Windows身份验证的简单索赔转换和缓存
- 常用Windows命令、常用 Cmd命令
- windows-7 – 在Windows 7中建立VPN连接后,我可以自动ROUTE
- windows – 在Mercurial中配置eol扩展的问题
- windows – 从同一个文件夹中调用另一个.bat文件?
- 重新安排WPF中的ListBox项目(如Windows 8启动屏幕图块)
- windows – 如何获取硬盘访问的跟踪文件?
- IIS绑定与Windows身份验证