我正在考虑在我的应用程序中使用C++ 0x线程而不是Boost线程.但是,我不确定如何重新实现我对标准C++ 0x线程的重新实现,因为它们似乎没有interrupt()方法.
我目前的设置是:
工人wait()至少要求两个不同的条件变量.师父有一个"超时"状态:在这种情况下,它告诉所有工人停下来并给出他们当时获得的任何结果.使用Boost线程master只是interrupt_all()在线程组上使用,这导致worker停止等待.如果他们现在没有等待,主人还会设置一个bool工人定期检查的标志.
但是,在C++ 0x中,std::thread我没有看到任何替代品interrupt().我错过了什么吗?如果没有,我如何实施上述计划,以便工人不能永远睡觉?