条件变量(condition variable) 是一种能够阻塞调用线程直到收到通知才恢复执行的对象。它与 互斥量(mutex)(或 锁(lock))一起用于线程同步。条件变量由一个互斥量(或锁)和一个等待队列组成。通常,当一个线程需要等待某个条件满足时,会使用条件变量。该线程会锁定互斥量,检查条件,如果条件不满足,它将进入等待队列并解锁互斥量。当条件满足时,另一个线程会通知条件变量,提示它从等待队列中唤醒一个线程,并重新锁定互斥量。需要强调的是,条件变量可能会受到虚假唤醒和丢失唤醒的影响,因此开发者需要仔细管理它们。