zoukankan      html  css  js  c++  java
  • 初识python: 生成器并行(做包子,吃包子)

    知识点:

    send(i) :唤醒yield,并将 i 的值传给 yield

    #!/user/bin env python
    # author:Simple-Sir
    # time:20181020
    # 单线程并发:做一个包子,两个人吃
    import time
    # 吃包子生成器
    def chibaozi(name):
        print('%s想吃包子了!' %name)
        while True:
            baozi = yield
            print('第%s个包子来了,被%s吃了一半!'%(baozi,name))
    
    # 逻辑解析
    # c = chibaozi('SimpleGirl')
    # c.__next__()  # 唤醒yield
    # b1='牛肉包子'
    # c.send(b1)  # 注:唤醒yield,并将b1的值传给 yield
    
    # 做包子生成器
    def zuobaozi(name):
        c1 = chibaozi('SimpleSir')
        c2 = chibaozi('SimpleGirl')
        c1.__next__()
        c2.__next__()
        print('%s开始做包子了!'%name)
        for i in range(1,6):
            time.sleep(1)
            print('%s做了1个包子!'%name)
            c1.send(i)
            c2.send(i)
    
    # 调用函数
    zuobaozi('SimpleSir')

    执行结果:

    世风之狡诈多端,到底忠厚人颠扑不破; 末俗以繁华相尚,终觉冷淡处趣味弥长。
  • 相关阅读:
    Bootstrap的datetimepicker插件使用
    值得关注几个博客
    Windows下安装和配置tomca(免安装版本)
    AC自动机
    反向输出链表
    替换空格
    二维数组中的查找
    windows下配置nginx+php环境
    HTTP协议详解
    leetcode.3Sum
  • 原文地址:https://www.cnblogs.com/simple-li/p/9821453.html
Copyright © 2011-2022 走看看