1. 简介
条件变量
2. 类与接口
Condition锁使用了MutexLock,条件变量使用的是pthread_cond_t;
Condition构造时初始化,析构时销毁;
条件等待时创建局部变量MutexLock::UnassignGuard ug(mutex_)用于解除监控,在wait被触发后,作用域结束UnassignGuard 析构会再次添加监控
下面情况适合用pthread_cond_broadcast
- 一个生产者多消费者,生产者能一次产生多个产品的情况
- 多生产者多消费者
- 读写锁实现(写入之后,通知所有读者)
下面情况适合pthread_cond_signal的情况
- 单一生产者,生产者一次生产一个产品的情况,最好一个消费者