同时调用 async_send 和 async_receive 是否线程安全?

gri*_*ich 3 c++ sockets boost thread-safety boost-asio

我知道两次呼叫boost::asio::ip::tcp::socket::async_receive(或boost::asio::ip::tcp::socket::async_send)可能会导致不良行为。如果我同时呼叫boost::asio::ip::tcp::socket::async_recive和呼叫可以boost::asio::ip::tcp::socket::async_send吗?

我将有 2 个或更多线程运行,boost::asio::run因此您需要考虑到这一点。

谢谢

Ste*_*end 5

这必须没问题。您还会如何在单个服务上执行全双工异步通信?您需要始终接收未完成的传入数据。

升压文档仅表示每个async_readasync_write必须连续调用。例如,对于async_read

程序必须确保流不执行其他读取操作(例如 async_read、流的 async_read_some 函数或任何其他执行读取的组合操作),直到此操作完成。

的文档socket在这一点上没有具体说明,这是真的。