Boost asio实现基于 ACE proactor 的前摄器设计模式.
我理解为什么我们需要异步读取。但是,我对异步写入感到困惑。
- 为什么我们需要异步写入? 它对 TCP/UDP 连接也有用吗(写入 TCP/UDP 套接字需要时间)?
- 我可以混合使用异步读取和同步写入吗?
最佳答案
1) Why we need is async write? Is it useful for TCP/UDP connection too (can write to TCP/UDP socket take time)?
出于与异步读取相同的原因,需要异步写入。使用同步写操作时,调用会阻塞,直到所有数据都已传输。由于多种原因,这是不可取的。主要是为了在不使用显式线程的情况下实现并发,这是 proactor design pattern 的基础.
2) Can I mix async read with sync write?
是的,它们可以而且应该混合使用。使用异步读取操作而同步写入操作将是一个非常奇怪的设计。
关于c++ - Proactor 和异步写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554990/