C++并发编程(7):条件变量(conditional variable)、wait( )与notify_one( )、spurious wakeups(虚假唤醒)
并发操作的同步前面学习了如何保护线程间的共享数据。然而,有时候我们不仅需要保护共享数据,还需要令独立线程上的行为同步。例如,某线程只有先等另一线程的任务完成,才可以执行自己的任务。一般而言,线程常常需要等待特定事件的发生,或等待某个条件成立。只要设置一个“任务完成”的标志,或者利用共享数据存储一个类似的标志,通过定期查验该标志就可以满足需求,但这远非理想方法上述线程间的同步操作很常见,C++标准库