Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 前置器和异步写入_C++_Boost Asio_Ace - Fatal编程技术网

C++ 前置器和异步写入

C++ 前置器和异步写入,c++,boost-asio,ace,C++,Boost Asio,Ace,实现已添加的proactor设计模式 我理解为什么我们需要异步读取。Hovewer,我对异步写入感到困惑 为什么我们需要异步写入? 它对TCP/UDP连接也有用吗(写入TCP/UDP套接字是否需要时间) 我可以混合异步读取和同步写入吗 1) 为什么我们需要异步写入?它对TCP/UDP连接也有用吗(can 写入TCP/UDP套接字(需要时间) 需要异步写入的原因与异步读取的原因相同。当使用同步写入操作时,调用将阻塞,直到所有数据都已传输。这是不可取的,原因有很多。主要是为了在不使用显式线程的情况下

实现已添加的proactor设计模式

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

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

    需要异步写入的原因与异步读取的原因相同。当使用同步写入操作时,调用将阻塞,直到所有数据都已传输。这是不可取的,原因有很多。主要是为了在不使用显式线程的情况下实现并发,这是的基础

    2) 我可以混合异步读取和同步写入吗


    是的,它们可以而且应该混合使用。使用异步读取操作,而使用同步写入操作,这将是一种非常奇怪的设计。

    我不清楚您的第二个问题,您是指混合而不是混乱吗?1。例如,写入TCP套接字的时间比异步写入(创建缓冲区、有时在写入时分配内存块使其处于活动状态、对回调进行排队等)中涉及的操作要长。我不明白你的答案——应该还是不应该混淆?:)2.你能解释一下原因吗?@dimba答案2的解释与答案1相同。在使用proactor设计模式时,不希望将同步操作与异步操作混合使用。这样做需要显式线程来避免阻塞epoll reactor事件循环。因此,为了接收异步读取,我“被迫”使用异步写入。