单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,
并发的本质:切换+保存状态
yield本身就是一种在单线程下可以保存任务运行状态的方法
1 yiled可以保存状态,yield的状态保存与操作系统的保存线程状态很像,但是yield是代码级别控制的,更轻量级
2 send可以把一个函数的结果传给另外一个函数,以此实现单线程内程序之间的切换
import time def func1(): for i in range(10000): i+1 def func2(): for i in range(10000): i+1 start = time.time() func1() func2() stop=time.time() print(stop-start) 结果:0.002500295639038086