from multiprocessing import Queue, Process
def consumer(q, name):
while 1:
info = q.get()
if info:
print(' %s 得到 %s' % (name, info))
else:
break
def producer(q, product):
for i in range(20):
info = product + '的产品%s号' % str(i)
q.put(info)
if __name__ == '__main__':
q = Queue(10)
p_pro1 = Process(target=producer, args=(q, '美国产'))
p_pro2 = Process(target=producer, args=(q, '英国产'))
p_pro3 = Process(target=producer, args=(q, '日本产'))
p_con1 = Process(target=consumer, args=(q, '消费者01'))
p_con2 = Process(target=consumer, args=(q, '消费者02'))
p_l = [p_con1, p_con2, p_pro1, p_pro2, p_pro3]
[i.start() for i in p_l]
p_pro1.join()
p_pro2.join()
p_pro3.join()
q.put(None)
q.put(None)
q.get()
q.put()
q.get_nowait()
q.put_nowait()