1、差异说明
在实现多任务时,线程切换远不仅仅是从系统层面保存和恢复CPU的上下文。为了提高程序运行的效率,每个线程都有自己的数据,如缓存Cache。操作系统还将帮助您恢复这些数据。因此,线程切换非常划算。
协程切换只是简单操作CPU的上下文,一秒钟就可以切换几百万个系统。
2、实例
importtime defwork1(): whileTrue: print("----work1---") yield time.sleep(0.5) defwork2(): whileTrue: print("----work2---") yield time.sleep(0.5) defmain(): w1=work1() w2=work2() whileTrue: next(w1) next(w2) if__name__=="__main__": main() ----work1--- ----work2--- ----work1--- ----work2--- ----work1--- ----work2--- ----work1--- ----work2--- ----work1--- ----work2--- ----work1--- ----work2--- ...省略...
以上是python协程和线程的区别,希望对大家有所帮助。更多Python学习指导:python基础教程