【发布时间】:2021-07-21 18:53:31
【问题描述】:
在主线程中,我在一个循环中创建了 8 个std::threads。
所有这些线程最终都会调用_ios.run() // _ios is per thread。
在类定义中:
boost::asio::io_service _ios;
boost::optional<boost::asio::io_service::work> _work;
std::thread _thread;
类构造函数:
{
_work = boost::in_place(boost::ref(_ios));
_thread = std::thread{[this] () {
setup_a_few_stuffs();
_ios.run();
}
};
}
在主线程中,我想向这些io_services 发布作业,但我想确保所有线程都已开始运行它们的io_services,即所有线程都已调用_ios.run() 并准备就绪处理作业。
有没有办法查询io_serivce 的状态?
如果是,那么我可以一一查询所有线程的io_services 是否准备好。
【问题讨论】:
标签: c++ boost boost-asio