zoukankan      html  css  js  c++  java
  • 用生成器做伪并发

    #_author:Administrator
    #date:2019/11/4
    import time
    def consumer(name):
    print('%s 开始吃包子啦'%name)
    while True:
    baizi=yield
    print('包子[%s]来了,被[%s]吃了'%(baizi,name))
    def producer(name):
    c1=consumer('A')
    c2=consumer('B')
    next(c1)
    next(c2)
    print('yuwei开始做包子啦')
    for i in range(10):
    time.sleep(1)
    print('做了两个包子')
    c1.send(i)
    c2.send(i)
    producer('yuwei')
    #生成器都是迭代器,迭代器不一定是生成器
    Output:

    A 开始吃包子啦
    B 开始吃包子啦
    yuwei开始做包子啦
    做了两个包子
    包子[0]来了,被[A]吃了
    包子[0]来了,被[B]吃了
    做了两个包子
    包子[1]来了,被[A]吃了
    包子[1]来了,被[B]吃了
    做了两个包子
    包子[2]来了,被[A]吃了
    包子[2]来了,被[B]吃了
    做了两个包子
    包子[3]来了,被[A]吃了
    包子[3]来了,被[B]吃了
    做了两个包子
    包子[4]来了,被[A]吃了
    包子[4]来了,被[B]吃了
    做了两个包子
    包子[5]来了,被[A]吃了
    包子[5]来了,被[B]吃了
    做了两个包子
    包子[6]来了,被[A]吃了
    包子[6]来了,被[B]吃了
    做了两个包子
    包子[7]来了,被[A]吃了
    包子[7]来了,被[B]吃了
    做了两个包子
    包子[8]来了,被[A]吃了
    包子[8]来了,被[B]吃了
    做了两个包子
    包子[9]来了,被[A]吃了
    包子[9]来了,被[B]吃了

  • 相关阅读:
    docker安装mtproto及报错解决方案
    Centos7下创建和管理用户
    GitHub项目绑定自己的域名
    navicate远程连接mysql8.0失败
    Java反射
    Spring AOP
    Spring注解
    学习进度笔记20
    学习进度笔记19
    学习进度笔记18
  • 原文地址:https://www.cnblogs.com/startl/p/11791954.html
Copyright © 2011-2022 走看看