4.3 条件变量 (Condition Variables) 4.3 条件变量 (Condition Variables) 在多线程编程中,线程间的协作是核心挑战之一。除了保护共享数据不被并发修改(通过互斥量 Mutex)之外,线程经常需要等待某个特定条件的发生才能继续执行。例如,一个消费者线程可能需要等待生产者线程将数据放入缓冲区;或者一个工作线程可能需要等待一个任务队列不再为空。简单地使用互斥量无法高效地实现这种“等待某个条件”的需求。 考虑一个场景:一个线程需要等待某个布尔变量 变为 。如果仅仅使用一个互斥量保护 ,等待线程可能会写出如下代码: 这种方法被称为“忙等待”(Busy Waiting)或“轮询”(Polling)。