【问题标题】:send async with slow consumer与慢速消费者发送异步
【发布时间】:2015-10-07 06:14:45
【问题描述】:

在服务器同步发送数据的非阻塞套接字模式下,如果客户端处理 tcp 缓冲区的速度比发送者慢,send() 将开始阻塞/超时。

是服务器异步发送数据的情况吗? (例如使用 boost asio 方法async_send

【问题讨论】:

    标签: c++ networking boost boost-asio


    【解决方案1】:

    是的。异步操作将需要更长的时间才能完成。

    不,调用异步操作的代码不会阻塞(这就是 asynchronous 的意思)。

    send 通常是同步的,async_send 从不同步。当然,如果您等待所有异步操作完成,您最终会遇到相同的延迟,但这是您的选择。

    【讨论】:

    • “异步操作将需要更长的时间才能完成”,这是否意味着通过异步方式我引入了一些延迟(与同步方式相比)?
    • 没有。一如既往,在较低的 ISO 级别或客户端中引入了延迟
    猜你喜欢
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 2012-12-14
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    相关资源
    最近更新 更多