生产者消费者模型
生产者消费者模型介绍
生产者消费者模型实现
import time
import random
import os
from multiprocessing import Process, Queue
def producer(q):
# 生产3个包子,但生产的时间不确定
for i in range(3):
ret = '进程%s包子%s' % (os.getpid(), i)
time.sleep(random.randint(0, 3))
print('生产: %s' % ret)
q.put(ret)
def consumer(q):
while True:
ret = q.get()
if ret is None:
break
time.sleep(1)
print('进程%s消费:%s' % (os.getpid(), ret))
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() # 保证producer执行生产完毕
p2.join() # 保证producer执行生产完毕
p3.join() # 保证producer执行生产完毕
q.put(None) # 生产者 2 个
q.put(None) # 生产者 2 个
print('主...')生产者消费者模型总结
Last updated