前摄器和异步写入
Boost asio 实现了 ACE 前摄器。
我明白为什么我们需要异步读取。然而,我对异步写入感到困惑。
- 为什么我们需要异步写入? 它对于 TCP/UDP 连接也有用吗(写入 TCP/UDP 套接字需要时间)吗?
- 我可以混合异步读取和同步写入吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
需要异步写入的原因与异步读取的原因完全相同。当使用同步写入操作时,调用会阻塞,直到所有数据都已传输。由于多种原因,这是不希望的。主要是为了在不使用显式线程的情况下实现并发,这是 前摄器设计模式。
是的,它们可以而且应该混合。使用异步读取操作而同步写入操作将是一个非常奇怪的设计。
Asynchronous write is needed for the very same reasons as asynchronous read. When using synchronous write operations, the calls block until all data has been transmitted. This is not desirable for a number of reasons. Primarily to achieve concurrency without use of explicit threads, this is the basis of the proactor design pattern.
Yes, they can and should be mixed. It would be a very odd design to use asynchronous read operations, yet synchronous write operations.