Boost asio实现了基于ACE proactor的 proactor 设计模式。
我理解为什么我们需要异步读取。但是,我对异步写入感到困惑。
- 为什么我们需要异步写入?它对 TCP/UDP 连接也有用吗(可以写入 TCP/UDP 套接字需要时间)吗?
- 我可以将异步读取与同步写入混合使用吗?
Boost asio实现了基于ACE proactor的 proactor 设计模式。
我理解为什么我们需要异步读取。但是,我对异步写入感到困惑。
1)为什么我们需要异步写入?它对 TCP/UDP 连接也有用吗(可以写入 TCP/UDP 套接字需要时间)吗?
出于与异步读取相同的原因,需要异步写入。使用同步写入操作时,调用会阻塞,直到所有数据都传输完毕。出于多种原因,这是不可取的。主要是为了在不使用显式线程的情况下实现并发,这是前摄器设计模式的基础。
2)我可以将异步读取与同步写入混合使用吗?
是的,它们可以而且应该混合。使用异步读取操作和同步写入操作将是一个非常奇怪的设计。