我在在使用条件变量的时候,如果有很多线程等待在同一个条件变量上,那么当条件满足的时候,唤醒的可能不是我们需要的那个线程,所以我们应该让不同的角色等待在不同的条件变量上,区分唤醒
生产者与消费者模型
生产者与消费者模型不属于23中设计模型中的一种,它只是一种编程的思想
简明来说,所谓生产者与消费者模型其实就是两种角色,三种关系
在生产者与消费者中保证这三种关系的实现,才能保证数据的安全
生产者与生产者:互斥
生产者与消费者:同步+互斥
消费者与消费者:互斥
生产者与消费者的应用场景
1.缓解峰值压力
2.解耦合
3.支持忙闲不均
模拟实现环形队列生产者与消费者模型
1 #include<iostream>
2 #include<vector>
3 #include<stdlib.h>
4 #include<semaphore.h>
5 #include<pthread.h>
6 #include<unistd