相关疑难解决方法(0)

如何中断等待的C++ 0x线程?

我正在考虑在我的应用程序中使用C++ 0x线程而不是Boost线程.但是,我不确定如何重新实现我对标准C++ 0x线程的重新实现,因为它们似乎没有interrupt()方法.

我目前的设置是:

  • 管理工作的主线程;
  • 几个执行主命令的工作线程.

工人wait()至少要求两个不同的条件变量.师父有一个"超时"状态:在这种情况下,它告诉所有工人停下来并给出他们当时获得的任何结果.使用Boost线程master只是interrupt_all()在线程组上使用,这导致worker停止等待.如果他们现在没有等待,主人还会设置一个bool工人定期检查的标志.

但是,在C++ 0x中,std::thread我没有看到任何替代品interrupt().我错过了什么吗?如果没有,我如何实施上述计划,以便工人不能永远睡觉?

c++ multithreading interrupt c++11

9
推荐指数
1
解决办法
7093
查看次数

标签 统计

c++ ×1

c++11 ×1

interrupt ×1

multithreading ×1