一.什仫是生产者消费者模型?
什仫是生产者消费者模型呢?我们知道在实际的软件开发过程中,经常会遇到这样的情况:某个模块负责产生数据,这些数据由另外一个模块进行处理(这里的模块是广义的,可以是类,函数,进程和线程等),这里负责产生数据的模块就是生产者,处理数据的模块就是消费者。但是只有生产者和消费者是远远不够的,还需要一个缓冲区介于生产者和消费者之间,作为中介。生产者把数据放入缓冲区,消费者把数据从缓冲区中取走。生产者消费者模型是操作系统中一种重要的模型,它描述的是一种通知等待机制。
二.生产者和消费者的关系和特点
对于生产者和消费者模型必须具备的条件,用一句话来说就是:一个交易场所,两种角色,三种关系。
一个交易场所:交易场所指的是生产者和消费者之间进行数据交换的仓库,这块仓库相当于一个缓冲区,生产者负责把数据放入到缓冲区中,消费者负责把缓冲区中的数据取出来;
两种角色:两种角色就是生产者和消费者;