在循环中等待直到发生信号/事件

时间:2013-09-20 09:28:07

标签: c++ multithreading thread-safety condition-variable

我有一个函数,它是一个在bool上循环的循环,并且应该在每次迭代结束时等待来自另一个函数的信号,如下所示:

void workLoop()
{
  while(bKill)
  {
    std::cout << "I'm a crazy loop!\n";
    condvar.wait();
  }
}


void go()
{
  std::cout << "Go!\n";
  condvar.notify();
}


void kill()
{
  std::cout << "Kill.\n";
  bKill = false;
}


我一直在看std :: condition_variables分别为boost :: condition_variables,它们似乎有点过于强大,因为它必须使用互斥锁并锁定并让CV等待某个条件为真。当然我的任务是使这个结构线程安全,所以可能我可能需要互斥锁/锁定的东西。 你能否告诉我这是如何正确完成的?干杯!

0 个答案:

没有答案