gpt4 book ai didi

multithreading - Boost Asio是否按顺序调用异步处理程序

转载 作者:行者123 更新时间:2023-12-03 13:20:40 25 4
gpt4 key购买 nike

如果我启动了一个asio计时器并在与主线程不同的线程上进行接收,这些处理程序是否可以同时运行?我假设没有,并且即使它们同时准备好了,单独的线程也会依次调用事件。要同时调用处理程序,asio必须创建自己的(第3个)线程,甚至中断一个处理程序以运行另一个处理程序。我找不到说明可能会顺序调用处理程序的文档。

最佳答案

如果多个线程正在为io_service的事件循环提供服务,例如调用 io_service::run() 的线程池,则处理程序可以同时执行。另一方面,如果只有一个线程为io_service服务,则可以确保回调处理程序不会同时运行,因为Boost.Asio保证回调处理程序只能在当前正在调用io_service::run*()的线程内执行。 Boost.Asio Timer.5 - Synchronising handlers in multithreaded programs 教程可能会提供有关此主题的更多见解。

关于multithreading - Boost Asio是否按顺序调用异步处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16066007/

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