首页 > 其他 > 详细

5.1.10 生产者与消费者模型

时间:2018-06-16 18:31:49      阅读:140      评论:0      收藏:0      [点我收藏+]

用途:

     程序中有两类角色,一类用来生产数据,一类用来消费数据。

    生产者消费者模型引入队列 

    解耦合

    如果使用multiprocessing中的Queue的这种生产消费模型,必须在同一台机器上,集中式

   如何分布?

 

   

from multiprocessing import Process,Queue
import time

def producer(q):
    for i in range(10):
        res=包子%s %i
        time.sleep(0.5)
        print(生产者生产了%s %res)

        q.put(res)

def consumer(q):
    while True:
        res=q.get()
        if res is None:break
        time.sleep(1)
        print(消费者吃了%s % res)



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() p2.join() p3.join() q.put(None) q.put(None)
print()

 

5.1.10 生产者与消费者模型

原文:https://www.cnblogs.com/beallaliu/p/9190996.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!