# 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()
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交