条件变量
c++库提供两个条件变量的实现,std::condition_variable和std::condition_variable_any,二者均在<condition_variable>头中,二者需要和互斥元一起工作,前者要和mutex,后者和任意符合互斥元标准的对象。
当 std::condition_variable对象的wait 函数被调用的时候,它使用 std::unique_lock(通过 std::mutex) 来锁住当前线程。当前线程会一直被阻塞,直到另外一个线程在相同的 std::condition_variable 对象上调用了 notification 函数来唤醒当前线程。