手动书写生产者消费者代码 from multiprocessing import Process, Queue
import time, random
# 1. 生产者制造数据
def producer(name, food, q):
for i in range(6):
data = f'{name},{food},{i}'
time.sleep(random.randint(1, 3))
print(data)
q.put(data)
# 2. 消费者接收数据
def consumer(name, q):
while True:
food = q.get()
if not food:
break
time.sleep(random.randint(1, 2))
print(f'{name}吃了{food}')
if __name__ == '__main__':
q = Queue()
# 生产者
p1 = Process(target=producer, args=('aaa', '包子', q))
p2 = Process(target=producer, args=('bbb', '煲汤', q))
# 消费者
c1 = Process(target=consumer, args=('deimos', q))
p1.start()
p2.start()
c1.start()
# 等待生产者生产完所有的数据,往队列添加指定的符号
p1.join()
p2.join()
q.put(None)
q.put(None) # 两个None,一个消费真拿一个,拿到就break了
# 有几个消费者就放几个None