目录
1.环形队列
环形队列使用vector封装出来的。
环形队列可以实现并发生产和消费,就是在消费的同时也可以生产。
这个是建立在生产者消费者位置不重合的情况下。
因为位置重合之后,环形队列为空或者满,
为空的时,只能让生产者先生产,消费者后消费,
为满时,消费者先消费,生产者后生产。
如何实现环形的效果
当下标遍历到vector末尾的时候, 下标 %=判断环形队列为空还是为满 vector容量,下标就回到数组的开始。
当生产者消费者重合时
1.队列为空(访问环形队列,让生产者先生产)
2.队列为满(访问环形队列,让消费者先消费)
当生产者与消费者不重合时
队列一定不为空&&不为满,这个时候生产者可以生产,消费者可以消费。
2.加上信号量的理解
生产者只关心环形队列有没有空间让他生产
消费者只关心环形队列有没有数据让他消费