条件变量是线程之间同步的另一种方法,互斥量通过控制线程访问数据的形式来实现同步,而条件变量通过类似于共享数据的值来实现线程间同步。
当没有条件变量时,编程人员可能需要让线程持续轮询(可能位于一个临界区内)来检查一些条件是否满足;这会消耗较多的资源,因为线程可能会较多地保持工作状态。那么条件变量就是替换轮询的高效实现方法。
条件变量往往和互斥量一起使用,使用条件变量的调用顺序如下表所示。
主线程
| |
线程A
|
线程B
|
主线程
|
条件变量是线程之间同步的另一种方法,互斥量通过控制线程访问数据的形式来实现同步,而条件变量通过类似于共享数据的值来实现线程间同步。
当没有条件变量时,编程人员可能需要让线程持续轮询(可能位于一个临界区内)来检查一些条件是否满足;这会消耗较多的资源,因为线程可能会较多地保持工作状态。那么条件变量就是替换轮询的高效实现方法。
条件变量往往和互斥量一起使用,使用条件变量的调用顺序如下表所示。
主线程
| |
线程A
|
线程B
|
主线程
|