生产者消费者模型
模型, 设计模式,归一化设计, 理论等等,教给你一个编程思路.如果以后遇到类似的情况,直接套用即可.
生产者: 生产数据进程.
消费者: 对生产者生产出来的数据做进一步处理进程.
吃饭: 吃包子. 厨师生产出包子,不可能直接给到你嘴里. 放在一个盆中,消费者从盆中取出包子食用.三个主体 : (生产者)厨师, (容器队列)盆, (消费者)人.
为什么夹杂这个容器?
如果没有容器, 生产者与消费者强耦合性.不合理.所以我们要有一个容器,缓冲区.平衡了生产力与消费力.
生产者消费者多应用于并发.
from multiprocessing import Process
from multiprocessing import Queue
import time
import random
def producer(name,q):
for i in range(1,6):
time.sleep(random.randint(1,3))
res = f'{i}号包子'
q.put(res)
print(f'\033[0;32m 生产者{name}: 生产了{res}\033[0m')
def consumer(name,q):
while 1:
try:
time.sleep(random.randint(1,3))
ret = q.get(timeout=5)
print(f'消费者{name}: 吃了{ret}')
except Exception:
return
if __name__ == '__main__':
q = Queue()
p1 = Process(target=producer, args=('太白',q))
p2 = Process(target=consumer, args=('MC骚强',q))
p1.start()
p2.start()
生产者消费者模型:
合理的去调控多个进程去生成数据以及提取数据,中间有个必不可少的环节容器队列.