对有锁图像队列+条件变量+生产者消费者的综合实现:
- 实现了有锁队列(mutex + condition_variable)
- 实现了生产者队列
- 实现了消费者队列
核心知识点
-
std::mutex保护队列,同一时间只有一个线程能修改。
-
std::condition_variable
- 队列空 → 消费者等待
- 队列满 → 生产者等待
- 状态变化 → notify_one () 唤醒对方
-
unique_lock配合条件变量使用,能自动解锁 / 上锁,比 lock_guard 更灵活。
-
生产者消费者模型
- 生产 → 放入队列 → 唤醒消费者
- 消费 → 取出数据 → 唤醒生产者