码迷,mamicode.com
首页 > 其他好文 > 详细

消费者模型代码

时间:2018-10-30 21:22:44      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:信号   join()   大小   print   ESS   生产   缓冲   target   __name__   

#生产者消费者模型
import time
from multiprocessing import Process,Queue,JoinableQueue

def producer(q):
    for i in range(1,11):
        time.sleep(0.5)
        print(‘生产了包子%s号‘ % i)
        q.put(i)
    q.join()
    print(‘在这里等你‘)
def consumer(q):
    while 1:
        time.sleep(1)
        s = q.get()
        print(‘消费者吃了%s包子‘ % s)
        q.task_done()  #给q对象发送一个任务结束的信号

if __name__ == ‘__main__‘:
    #通过队列来模拟缓冲区,大小设置为20
    q = JoinableQueue(20)
    #生产者进程
    pro_p = Process(target=producer,args=(q,))
    pro_p.start()
    #消费者进程
    con_p = Process(target=consumer,args=(q,))
    con_p.daemon = True #
    con_p.start()
    pro_p.join()
    print(‘主进程结束‘)

  

消费者模型代码

标签:信号   join()   大小   print   ESS   生产   缓冲   target   __name__   

原文地址:https://www.cnblogs.com/presleyren/p/9879202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!