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的雏形)