前摄器和异步写入

发布于 2024-10-30 17:03:02 字数 354 浏览 0 评论 0 原文

Boost asio 实现了 ACE 前摄器

我明白为什么我们需要异步读取。然而,我对异步写入感到困惑。

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

Boost asio implements proactor design pattern baded on ACE proactor.

I understand why we need async read. Hovewer, I'm a confused with async write.

  1. Why we need is async write?
    Is it useful for TCP/UDP connection too (can write to TCP/UDP socket take time)?
  2. Can I mix async read with sync write?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不可一世的女人 2024-11-06 17:03:02

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)?

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.

2) Can I mix async read with sync write?

Yes, they can and should be mixed. It would be a very odd design to use asynchronous read operations, yet synchronous write operations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文