我有一个函数,它是一个在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等待某个条件为真。当然我的任务是使这个结构线程安全,所以可能我可能需要互斥锁/锁定的东西。
你能否告诉我这是如何正确完成的?干杯!