Python-生成器迭代器编程练习
1、吃包子----生产者消费者模型(单线程一边发送,一边执行 ,伪并发)
吃包子
1 import time 2 def producer(): 3 ret=[] 4 for i in range(100): 5 time.sleep(0.1) 6 ret.append('包子%s' %i) 7 return ret 8 9 def consumer(name): 10 print('我是[%s],我准备开始吃包子了' %name) 11 while True: 12 baozi=yield 13 time.sleep(1) 14 print('%s 很开心的把【%s】吃掉了' %(name,baozi)) 15 16 def producer(): 17 c1=consumer('wupeiqi') 18 c2=consumer('yuanhao_SB') 19 c1.__next__() 20 c2.__next__() 21 for i in range(10): 22 time.sleep(1) 23 c1.send('包子 %s' %i) #发送的值,就是yield的返回值 24 c2.send('包子 %s' %i) 25 producer() 26 27 28 -------------------> 29 30 我是[wupeiqi],我准备开始吃包子了 31 我是[yuanhao_SB],我准备开始吃包子了 32 wupeiqi 很开心的把【包子 0】吃掉了 33 yuanhao_SB 很开心的把【包子 0】吃掉了 34 wupeiqi 很开心的把【包子 1】吃掉了 35 yuanhao_SB 很开心的把【包子 1】吃掉了 36 wupeiqi 很开心的把【包子 2】吃掉了 37 yuanhao_SB 很开心的把【包子 2】吃掉了 38 wupeiqi 很开心的把【包子 3】吃掉了 39 yuanhao_SB 很开心的把【包子 3】吃掉了 40 wupeiqi 很开心的把【包子 4】吃掉了 41 yuanhao_SB 很开心的把【包子 4】吃掉了 42 wupeiqi 很开心的把【包子 5】吃掉了 43 yuanhao_SB 很开心的把【包子 5】吃掉了 44 wupeiqi 很开心的把【包子 6】吃掉了 45 yuanhao_SB 很开心的把【包子 6】吃掉了 46 wupeiqi 很开心的把【包子 7】吃掉了 47 yuanhao_SB 很开心的把【包子 7】吃掉了 48 wupeiqi 很开心的把【包子 8】吃掉了 49 yuanhao_SB 很开心的把【包子 8】吃掉了 50 wupeiqi 很开心的把【包子 9】吃掉了 51 yuanhao_SB 很开心的把【包子 9】吃掉了 52 53 #运行结果省略部分.....
2
为什么要坚持,想一想当初!