c++ - Proactor 和异步写入

标签 c++ boost-asio ace

Boost asio实现基于 ACE proactor 的前摄器设计模式.

我理解为什么我们需要异步读取。但是,我对异步写入感到困惑。

  1. 为什么我们需要异步写入? 它对 TCP/UDP 连接也有用吗(写入 TCP/UDP 套接字需要时间)?
  2. 我可以混合使用异步读取和同步写入吗?

最佳答案

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/

相关文章:

c++ - boost asio transfer_exactly 读取 0 字节

c++ - Boost Asio io_service 析构函数卡在 OS X 上

c++ - 多线程boost asio中的随机EOF

C++ 网络序列化

c++ - CMake 错误 : variable is NOTFOUND. ACE_INCLUDE_DIR(高级)

c++ - 我的变量不会有任何值(value)

c++ - qss中设置QTreeView选中项样式

c++ - 线程没有从 sleep 中醒来

c++ - QTreeView Item Hover/根据当前颜色选择背景色

c++ - 为非指针模板类引发异常?