标签:消费 target code art tar none 分布 ESS range
用途:
程序中有两类角色,一类用来生产数据,一类用来消费数据。
生产者消费者模型引入队列
解耦合
如果使用multiprocessing中的Queue的这种生产消费模型,必须在同一台机器上,集中式
如何分布?
from multiprocessing import Process,Queue import time def producer(q): for i in range(10): res=‘包子%s‘ %i time.sleep(0.5) print(‘生产者生产了%s‘ %res) q.put(res) def consumer(q): while True: res=q.get() if res is None:break time.sleep(1) print(‘消费者吃了%s‘ % res) if __name__ == ‘__main__‘: #容器 q=Queue() #生产者们 p1=Process(target=producer,args=(q,)) p2=Process(target=producer,args=(q,)) p3=Process(target=producer,args=(q,)) #消费者们 c1=Process(target=consumer,args=(q,)) c2=Process(target=consumer,args=(q,)) p1.start() p2.start() p3.start() c1.start() c2.start()
# 发送生产者结束信号 解决消费者如何知道生产者不生产数据 p1.join() p2.join() p3.join() q.put(None) q.put(None) print(‘主‘)
标签:消费 target code art tar none 分布 ESS range
原文地址:https://www.cnblogs.com/beallaliu/p/9190996.html