利用 yield 的返回特性, 可以实现 并行 效果,此处模拟两死循环交替执行。(了解)
此方法已经封装到 greenlet 和 gevent 模块中
import time
def task1():
while True:
print("--1--")
# 返回,之后执行 while True 继续 next(t2)
time.sleep(0.1)
yield
def task2():
while True:
print("--2--")
time.sleep(0.1)
# 返回,之后执行 while True 继续 next(t1)
yield
def mian():
# 创建连个 生成器 对象
t1 = task1()
t2 = task2()
while True:
# 一个任务通过 yield 暂停,之后执行另外一个
next(t1)
next(t2)
if __name__ == '__main__':
mian()
执行效果
--1--
--2--
--1--
--2--
--1--
--2--
--1--
--2--
--1--
--2--