2019-07-02

作者: CC__XX | 来源:发表于2019-07-02 20:27 被阅读0次

使用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()

相关文章

网友评论

    本文标题:2019-07-02

    本文链接:https://www.haomeiwen.com/subject/czdthctx.html