作业4-23

  • 手动书写生产者消费者代码

from multiprocessing import Process,Queue,JoinableQueue
import time
import random

def producer(name,food,q):
    for i in range(5):
        data = f'{name} 生产了 {food} {i}'
        time.sleep(random.randint(1, 3))
        print(data)
        q.put(data)
def consumer(name,q):
    while True:
        food = q.get()
        time.sleep(random.randint(1, 3))
        print(f'{name} 吃了 {food}')
        q.task_done()
if __name__ == '__main__':
    q = JoinableQueue()
    p1 = Process(target=producer, args=('egon', '包子', q))
    p2 = Process(target=producer, args=('tank', '馒头', q))
    c1 = Process(target=consumer, args=('alex', q))
    c2 = Process(target=consumer, args=('json', q))
    p1.start()
    p2.start()
    c1.daemon = True
    c2.daemon = True
    c1.start()
    c2.start()
    p1.join()
    p2.join()
    q.join()

猜你喜欢

转载自www.cnblogs.com/jingpeng/p/12764751.html