万恶的win10,吃饭的时候自动更新把我写了一大半的博客搞没了,只能重写一遍了。。。
1 什么是生产者消费者模型
生产者:比喻的是程序中负责产生数据的任务
消费者:比喻的是程序中负责处理数据的任务
生产者->共享的介质(队列)<-消费者
2 为何用
实现了生产者与消费者的解耦和,生产者可以不停地生产,消费者也可以不停地消费
从而平衡了生产者的生产能力与消费者消费能力,提升了程序整体运行的效率
3.什么时候用?
当我们的程序中存在明显的两类任务,一类负责产生数据,另外一类负责处理数据
此时就应该考虑使用生产者消费者模型来提升程序的效率。
生产消费者基本模型:一个生产者,一个消费者
代码有注释
from multiprocessing import Queue,Process
import time
import os
import random
# 两个子进程,一个生产一个消费,一个把生产的全放进队列里,最后添加个None。一个从创造好的队列取出数据,
# 直到取出最后一个数据,循环结束。
# 只有一个生产者和消费者,所以生产结束直接在最后加个None,消费者取到None代表队列空了
def producer(q):
for i in range(10):
res='包子%s' %i
time.sleep(random.randint(1,3))
# 往队列里丢
q.put(res)
print('