我目前正在将处理程序发布到我的 io_service 并在线程池中执行它们。
io_serv.post( boost::bind(&Class::bar, p1, p2) );
我的工人运行这个功能:
m_mutex.lock();
std::cout << "[" << boost::this_thread::get_id()
<< "] Thread Start" << std::endl;
m_mutex.unlock();
size_t tasks = m_serv.run();
m_mutex.lock();
std::cout << "[" << boost::this_thread::get_id() << "] accomplished "
<< tasks << " tasks" << std::endl;
m_mutex.unlock();
到目前为止一切顺利,但现在我想在处理程序队列为空时触发一个事件,而不会杀死我的活动(但正在等待)线程。
有可能吗?怎么做?