多任务3(协程)--yield完成多任务交替执行

协程是并发,单线程,一次执行一个 来回切换

代码:

 1 import time
 2 
 3 
 4 def task_1():
 5     while True:
 6         print("-----1-----")
 7         time.sleep(0.1)
 8         yield
 9 
10 
11 def task_2():
12     while True:
13         print("----2-----")
14         time.sleep(0.1)
15         yield
16 
17 
18 def main():
19     t1 = task_1()
20     t2 = task_2()
21     # 先让t1运行一会,当t1中遇到yield的时候,在返回到22行
22     # 然后执行t2,当它遇到yield的时候,再次切回到t1中
23     # 这样t1/t2/t1/t2...交替运行,最终实现多任务---协程
24     while True:
25         next(t1)
26         next(t2)
27 
28 
29 
30 if __name__ == '__main__':
31     main()

结果:

-----1-----
----2-----
-----1-----
----2-----
-----1-----
----2-----
-----1-----
----2-----
-----1-----
----2-----
-----1-----
----2-----
-----1-----
----2-----

  

原文地址:https://www.cnblogs.com/yifengs/p/11395107.html