13 精进版SVIP版通过队列实现一个生产者消费者模型
import time from multiprocessing import Process,Queue,JoinableQueue #生产者 def producer(q): for i in range(10): time.sleep(0.2) s = '大包子%s号'%i print(s+'新鲜出炉,拿去用') q.put(s) q.join() #就等着task_done()信号的数量,和我put进去的数量相同时,才继续执行 print('所有的任务都被处理了,继续潜行吧骚年们') def consumer(q): while 1: time.sleep(0.5) baozi = q.get() print(baozi+'被吃了') q.task_done() #给队列发送一个取出的这个任务已经处理完毕的信号 if __name__ == '__main__': # q = Queue(30) q = JoinableQueue(30) #同样是一个长度为30的队列 pro_p = Process(target=producer,args=(q,)) con_p = Process(target=consumer,args=(q,)) pro_p.start() con_p.daemon = True con_p.start() pro_p.join() print('主进程结束')