套接字异步操作会同步完成吗?

Posted

技术标签:

【中文标题】套接字异步操作会同步完成吗?【英文标题】:will socket async operation ever complete synchronously? 【发布时间】:2013-07-16 09:44:46 【问题描述】:

根据http://support.microsoft.com/kb/156932,在某些情况下异步磁盘 IO 操作可能会同步完成。这仅适用于磁盘 IO 还是类似的条件适用于网络 IO?

更新: 我现在用调试器对此进行了测试并验证了这一点 1)如果接收缓冲区中有数据,操作将同步完成 2) IOCP 无论如何都会触发回调。

【问题讨论】:

【参考方案1】:

当然,例如,如果您正在读取套接字接收缓冲区中已经存在的数据。真正的问题是它会对您产生什么影响?

【讨论】:

我正在使用带有工作线程池的 IOCompletionPort,所以我想知道我是否可以依靠发生的回调来进行处理或天气我应该立即处理处理 为什么?回调将被调用。让它发生吧。 即使 ReadFile 返回 true? 甚至 before ReadFile 返回 true。这就是这个案例被命名为“同步”的原因。

以上是关于套接字异步操作会同步完成吗?的主要内容,如果未能解决你的问题,请参考以下文章

Future和Promise

GL_PIXEL_PACK_BUFFER异步性如何工作?

[react] react中的setState是同步还是异步的呢?为什么state并不一定会同步更新?

.Net 异步套接字操作限制?

JavaScipt 源码解析 异步

JDK AIO编程