2019-07-02

使用send唤醒生成器

如果一创建生成器就send会报错,因为没有yield,也没有ret去接收,但是可以send(None)
next 不可以传参数
send可以传递参数,使用yield接收

迭代器生成器总结

生成器是特殊的迭代器
保存生成数据的代码,而不是保存数值
生成使用yield来暂停,通过iter方法和next方法来实现继续
迭代器如何实现迭代iter方法和next方法实现的
减少内存空间,实现循环

使用yeild完成多任务

并行(真的多任务)多个任务,一个任务一个核

并发(假的多任务):多个任务,只有四个核,交替执行

import time

def task_1():
    while True:
        print("---1----")
        time.sleep(0.1)
        yield 

def task_2():
    while True:
        print("---2----")
        time.sleep(0.1)
        yield 

def main():
    # 此时并非函数调用而是生成器
    t1=task_1()
    t2=task_2()
    while True:
        next(t1)
        next(t2)

# 并行(真的多任务)多个任务,一个任务一个核
# 并发(假的多任务):多个任务,只有四个核,交替执行

if __name__ == '__main__':
    main()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、总体内容 1.1、协程的介绍 1.2、迭代器以及迭代器的应用 1.3、生成器(生成器与迭代器保存的都是生成数据...
    IIronMan阅读 4,302评论 0 1
  • 迭代、迭代器、生成器、协程、yield、greenlet、gevent、进程线程协程对比、gevent多任务图片下...
    Cestine阅读 3,385评论 0 0
  • 并行(真多任务)多个任务一起执行 并发(假多任务)多个任务在有限核中交替执行 生成器是一类特殊的迭代器 判断的迭代...
    圣召唤阅读 1,504评论 0 0
  • 本节课纲 可迭代对象 迭代器 生成器Python中内置的序列,如list、tuple、str、bytes、dict...
    郭_扬阅读 5,099评论 0 0
  • 2018.7.9日 星期一 天气阴 好久没写日记了,看见二班的家长们写的日记,我感到好愧疚。 今天早上六点...
    我是风儿你是沙_5f5d阅读 2,118评论 0 1

友情链接更多精彩内容