代码改变世界

生产者消费者模型

2013-12-05 20:59  轩脉刃  阅读(840)  评论(2编辑  收藏  举报

生产者消费者问题 最基本的是生产者生产出数据,消费者来获取数据,但是生产者消费者模型必须保证的是:

1 同一时间只会有一个生产者或者一个消费者会进行生产/消费

2 生产者或者消费者会操作一个缓冲区,这个缓冲区有大小

3 如果缓冲区数据达到大小上限,生产者没办法往缓冲区生产数据

4 如果缓冲区数据达到大小下限(即缓冲区内没有数据),消费者没有办法从缓冲区中消费数据

基于上面这几个条件,一个系统就满足生产者消费者模型了。

注释

生产者消费者模式一定是对并发来说的。多个线程或者多个进程对一个数据来进行操作才会需要用到生产者消费者模型,如果单线程的话,是不会有这个模型的。

并发一定就会涉及到锁的机制了,同一时间只有一个生产者或者一个消费者进行生产/消费,这条必须会使用到锁