gpt4 book ai didi

c++ - 如何使用 C++ boost::asio 顺序执行异步操作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:58 24 4
gpt4 key购买 nike

我希望有一种方法可以从多个线程添加异步任务并在 C++ boost::asio 应用程序中按顺序执行它们。

更新:我想在它们之间仅使用一个持久套接字进行服务器到服务器通信,我需要通过它对多个请求进行排序。它需要将传入的请求保持在队列中,触发最上面的一个/等待它响应并选择下一个。我试图避免使用 zeromq因为它需要一个专用线程。

更新 2: 好吧,这是我最后的结果:并发工作线程被“排队”以使用带有简单互斥锁的服务器到服务器套接字。通信正在阻塞写入/等待响应/读取然后释放互斥锁。是不是很简单:)

最佳答案

来自 ASIO documentation :

Asynchronous completion handlers will only be called from threads that are currently calling io_service::run().

如果您已经从多个线程调用 io_service::run(),您可以将异步调用包装在 io_service::strand 中,如 here 所述。 .

关于c++ - 如何使用 C++ boost::asio 顺序执行异步操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8161866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com