# python 生产者和消费者模型 # /usr/sbin/py/python # -*-coding:utf8-*- # 迭代器协议: 对应必须提供一个next方法,执行改方法要么返回迭代中的下一层,要么引起一个stopIteration异常,以终止迭代 # 生成器 :返回一个实现了next方法的对象模型 import time def producer(): res = [] for i in range(100): res.append("鸡蛋%s" % i) return res def consumer(res): for index, egger in enumerate(res): print("第%s个人吃了%s" % (index, egger)) pro = producer() consumer(pro) # 上面的函数存在缺陷 要等到100个鸡蛋全部生产处理才能开始吃,造成了严重的性能问题 # 使用包装器函数实现生产者消费者 def consumerNew(name): print("我是%s" % name) while True: index = yield print("%s很开心的吃了%s" % (name, index)) def pro(): c1 = consumerNew("tom") c1.__next__() for i in range(10): time.sleep(1) c1.send("臭鸡蛋%s" %i) pro()
python 15 生产者和消费者(迭代器和生成器)
最新推荐文章于 2023-08-12 12:16:22 发布