条件变量 在并发程序设计中,锁是必需的一个概念,但不是唯一的。还有一个概念叫做条件变量。 在很多情况下,线程需要检查某一条件满足之后,才会继续运行。一个简单的方案是自旋1知道条件满足,但是极其低效。那么,线程应该如何等待一个条件?答案就是条件变量。 条件变量是一个队列,当条件不满足的时候,线程可以把自己加入队列,等待该条件。另外一个线程,当它改变了上述条件时,就可以唤醒一个或多个等待线程,让它们继续执行。 线程通过时钟中断抢占CPU,不断的检查某个条件是否成立 ↩︎