zoukankan      html  css  js  c++  java
  • 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

    为什么要坚持,想一想当初!
  • 相关阅读:
    Java异步消息平台
    spring mvc绑定对象String转Date解决入参不能是Date的问题
    <welcome-file-list>标签的控制作用以及在springmvc中此标签的的配置方式
    第一篇
    Struts2学习笔记《二》
    java的事务处理
    Java Statement和PreparedStatement性能测试(转)
    JAVA上百实例源码网站
    Java程序优化的一些最佳实践(转)
    Struts2学习笔记《一》
  • 原文地址:https://www.cnblogs.com/JerryZao/p/8634269.html
Copyright © 2011-2022 走看看