首页 > 编程语言 > 详细

Python 第三十六章 其他模式+ 生产者模式+线程相关方法

时间:2019-08-23 21:45:01      阅读:63      评论:0      收藏:0      [点我收藏+]

生产者和消费者模型

"""
1.进程:生产者消费者模型
编程思想:模型,设计模式,理论等等
都是交给你一种编程的方法,以后遇到类似的情况,套用即可
生产者消费者模型三要素
    生产者:产生数据的
    消费者:接收数据做进一步处理的
    容器:队列
队列容器起到的作用:
缓冲作用,平衡了生产力和消费力,解耦
"""
from multiprocessing import Process
from multiprocessing import Queue
import time
import random

def producer(q,name):
    """
    生产者:生产包子
    :param q:
    :param name:
    :return:
    """
    for i in range(5):
        time.sleep(random.randint(1,2))
        res = f"{i}号"
        q.put(res)
        print(f'生产者{name}生产了{res}')

def consumer(q,name):
    """
    消费者:吃包子
    :param q:
    :param name:
    :return:
    """
    while 1:
        try:
            food = q.get()
            time.sleep(random.randint(1,3))
            print(f'\033[31;0m消费者{name}吃了{food}\033[0m')
        except Exception:
            return

if __name__ == '__main__':
    q = Queue()
    p1 = Process(target=producer,args=(q,'zs'))
    p2 = Process(target=consumer,args=(q,'ls'))
    p1.start()
    p2.start()
# 输出:
# 生产者zs生产了0号
# 生产者zs生产了1号
# 生产者zs生产了2号
# 消费者ls吃了0号
# 消费者ls吃了1号
# 生产者zs生产了3号
# 消费者ls吃了2号
# 生产者zs生产了4号
# 消费者ls吃了3号
# 消费者ls吃了4号

Python 第三十六章 其他模式+ 生产者模式+线程相关方法

原文:https://www.cnblogs.com/zhangshan33/p/11402383.html

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