生产者消费者模型是做什么用的:把写在一起的大功能分开成多个小功能处理
形象来说就是启用两个进程:
-
一个进程是生产者
-
一个进程是消费者
-
生产者与消费者之间的容器就是队列
import time import random from multiprocess import Process,Queue def producer(q,name,food): for i in range(10): time.sleep(random.random()) fd = '%s%s'%(food,i) q.put(fd) print('%s生产了一个%s'%(name,food)) def consumer(q,name): while True: food = q.get() if not food:break time.sleep(random.radom(1,3)) print('%s吃了%s'%(name,food)) #注意:这时consumer函数不会结束 def cp(c_count,p_count) q = Queue(10) for i in range(c_count) Process(target=consumer,args=(q,'liujia')).start() P_l = [] for i in range(p): p1 = Process(target=producer,args=(q,'liudanni','泔水')) p1.start() p_l.append(p1) for p in p_l:p.join() for i in range(c_count): q.put(None) if __name__ == '__main__': cp(2,3)