https://www.modernescpp.com/index.php/c-core-guidelines-be-aware-of-the-traps-of-condition-variables

    今天遇到一个问题,定义了一个std::condition_variable变量 cv, 主线程里面cv.wait()可以阻塞,但是在收到cv.notify前,阻塞就结束了,真是一个奇怪的问题,google了下,竟然是c++多线程的一个坑,永远不要调用cv.wait的时候缺少条件判断参数,而且条件判断切记要加mutex,详见上面的链接解释的非常清楚!!

    简单来说,上面我遇到的情况就是spurious wakeup(虚假唤醒),cppreferences中也有提及,使用条件判断可以避免这种问题。