10.4通过生成器yield实现伪并发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.4通过生成器yield实现伪并发相关的知识,希望对你有一定的参考价值。

通过生成器yield实现伪并发

可以直接作用于for循环的数据类型有以下几种:
一类是集合数据类型,如list ,tuple,dict,string,set等;
一类是generator,包括生成器和带yield的generator function;
这些可以直接作用于for循环的对象统称为可迭代对象:iterable,可以使用isinstance()判断一个对象是否是iterable对象

# -*-coding:utf-8 -*-
__date__ = ‘2018/3/18 ‘
__author__ = ‘xiaojiaxin‘
__file_name__ = ‘伪并发‘

import time

def consumer(name):
    print("%s  准备吃包子!"%name)
    while True:
        baozi=yield

        print("包子[%s]来了,被[%s]吃啦"%(baozi,name))

def producer(name):
    c=consumer("A")
    c2=consumer("B")
    c.__next__()
    c2.__next__()
    print("开始准备做包子了!")
    for i in range(10):
        time.sleep(1)
        print("做了2个包子!")
        c.send(i)
        c2.send(i)

producer("jia")

大家对内容有任何问题,欢迎留言,一定在第一时间解答,谢谢大家!

以上是关于10.4通过生成器yield实现伪并发的主要内容,如果未能解决你的问题,请参考以下文章

通过生成器yield实现单线程的情况下实现并发运算效果(异步IO的雏形)

2017/9/5的学习内容___通过yield实现在单线程的情况下实现并发运算的效果

yield 伪并发

greenlet:轻量级的并发编程

第二模块 3.14 通过生成器实现并发编程

Python并发编程理解yield from协程