协程是并发,单线程,一次执行一个 来回切换
代码:
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-----