提问人:a85551 提问时间:10/20/2023 最后编辑:wohlstada85551 更新时间:10/20/2023 访问量:42
如何在多个线程中序列化访问 udp::socket 对象(在 boost/asio 中)?
How to serializing access a udp::socket object in multiple threads (in boost/asio)?
问:
如果我使用 Strand 来实现我的目的:
方法1:
co_spawn(strand, []() -> awaitable<void> {
co_await a_socket.async_receive_from(...., use_awaitable);
}, detached);
艺术
co_await co_spawn(strand, []() -> awaitable<void> {
co_await a_socket.async_receive_from(...., use_awaitable);
}, use_awaitable);
方法2:
co_await a_socket.async_receive_from(...., asio::bind_executor(strand, use_awaitable));
方法3:
udp::socket socket(strand); // construct
co_await a_socket.async_receive_from(...., use_awaitable);
哪种方法是正确的?
答: 暂无答案
评论