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

    为什么要坚持,想一想当初!
  • 相关阅读:
    WPF的布局--DockPanel
    WPF的布局--StackPanel
    C#中的不可空类型转为可空类型
    linux下安装nodejs及npm
    HTML DOM 事件对象 ondragend 事件
    pc端页面在移动端显示问题
    css设置文字上下居中,一行文字居中,两行或多行文字同样居中。
    超简单的gif图制作工具
    Git创建与合并分支
    props default 数组/对象的默认值应当由一个工厂函数返回
  • 原文地址:https://www.cnblogs.com/JerryZao/p/8634269.html
Copyright © 2011-2022 走看看