一、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)
运行结果:
-----1-----
-----2-----
-----1-----
-----2-----
-----1-----
-----2-----
-----1-----
-----2-----
-----1-----
-----2-----
-----1-----
-----2-----
-----1-----
-----2-----
......