Condition variable
条件变量对象能够阻塞线程的调用直到通知其重启。
Member functions
构造函数,构造一个条件变量对象,条件变量对象不能被拷贝构造、移动拷贝构造。
析构函数,释放一个条件变量对象,任何处于阻塞状态的线程中的条件变量对象在没有被通知前都不能调用析构;任何线程不能在已经析构了的条件变量对象上调用阻塞。
Wait functions
wait,等待直到被通知。该函数执行过程中的三个原子操作:1、初始开锁同时进入等待状态;2、解除等待状态;3、上锁并返回。异常安全:如果参数无效(例如,调用线程没有锁定互斥锁),将导致未定义行为。
wait_for,等待超时或者被通知。
wait_until,等待直到被通知或到某个时间点。
Notify functions
notify_one,通知一个阻塞的线程重启。
notify_all,通知所有阻塞的线程重启。