yield完成多任务

2020-02-11  本文已影响0人  栀心_d553
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():
    #因为添加了yield,所以就不是调用函数,而是创建了生成器

    t1 = task_1()
    t2 = task_2()
    while True:
        #轮流调用
        next(t1)
        next(t2)
        #流程:先开始执行next1,遇到yield就暂停,然后回到next(t1)
        #回到next(1)后,执行next(2),然后执行task_2,遇到yield,暂停
        #然后又执行t1....

if __name__ == '__main__':

    main()

#并行(真的多任务  一个任务占一个盒)
#并发(假的多任务  交替执行)

#进程浪费资源
#协程效率高
上一篇 下一篇

猜你喜欢

热点阅读