迭代器和生成器
#如何做并行
#生产者-消费者模型
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import time 2 def consumer(name): 3 print("%s 消费者吃包子!" %name) 4 while True: 5 baozi=yield#保存当前状态 6 print("包子[%s]来了,被[%s]" %(baozi,name)) 7 # c_1=consumer("小明") 8 # c_1.__next__() 9 # 10 # b1="韭菜馅" 11 # c_1.send(b1)#给yield传值,__next()__只调用yield,不传值 12 13 def producer(name): 14 c_1=consumer('A') 15 c_2 = consumer('B') 16 c_1.__next__() 17 c_2.__next__() 18 print("厨师开始做包子") 19 for i in range(10): 20 time.sleep(2) 21 print("%s做了%s包子"%(name,i)) 22 c_1.send(i) 23 c_2.send(i) 24 25 producer("zxq") 26 #通过iter()的方法,可以使迭代对象变成迭代器,使用__next__的方法 27 print(range(10))#range()本身就是一个迭代器