使用yield完成多任务

一、yield完成多任务的特点:

  

  1、相对进程、线程而言,它占用的资源最小

  2、线程是并发,假的多线程。因为它是一个进程中的一个线程

二、执行流程

 

  1、先按顺序执行task_1函数,当执行到【yield】关键字处时,暂停执行

  2、task_1函数暂停执行后,程序立马切换至task_2函数继续执行,

    直到执行到【yield】关键字处,暂停执行。

  3、程序就在两个任务之间相互来回切换

三、代码演示

from time import *


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


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


if __name__ == "__main__":
    t1 = task_1()
    t2 = task_2()
    while True:
        next(t1)
        next(t2)
View Code

运行结果:

-----1-----

-----2-----

-----1-----

-----2-----

-----1-----

-----2-----

-----1-----

-----2-----

-----1-----

-----2-----

-----1-----

-----2-----

-----1-----

-----2-----

......

原文地址:https://www.cnblogs.com/yujiemeigui/p/14312720.html