生成器实现单线程的并行效果

'''
迭代器和生成器的结合实例
生成器只有在调用的时候才会生成相应的数据
'''

import time

#吃包子
def consumer(name):
	print("%s 准备开始吃包子啦!" % (name))
	while True:
		baozi = yield
		print("一半包子[%s]被[%s]吃掉啦" % (baozi, name))

#做包子
def producer(name):
	#创建Eric 和 Peter生成器
	a = consumer('Eric')
	b = consumer("Peter")
	#让Eric和Peter准备开始吃包子
	a.__next__()
	b.__next__()
	print("[%s]要开始做包子了...." % name)
	for i in range(10):
		time.sleep(2)
		print("一个包子出笼!")
		a.send(i)
		b.send(i)
		print("\n")

producer("xiaobai")

  

posted @ 2018-04-03 08:23  与君同悦  阅读(112)  评论(0编辑  收藏  举报