python基础学习日志day10-协程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础学习日志day10-协程相关的知识,希望对你有一定的参考价值。

一:什么是协程

  协程(Coroutine):协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。

  协程调度切换时,将寄存器上下文和栈保存在其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈

  因此:协程能保留上一次调用的时的状态,每次过程重入时,就相当于进入上一次调用的。

  换种说法:进入上一次离开时所处逻辑流的位置。

 

二:协程的优点缺点

  优点:

  1)无需线程上下文切换的开销

  2)无需原子操作锁定及同步的开销

  3)方便切换控制流,简化编程模型

  4)高并发+高扩展性+低成本:一个CPU支持上万的协程不是问题,很适合高并发

  缺点:

  1)无法利用多核资源:协程本质是单线程,他不能同时单个CPU的多个核用上,协程需要和进程配合

    才能运行在多CPU上。

  2)进行阻塞(Blocking)操作(如IO时)会阻塞整个程序

 

 

三:

 

以上是关于python基础学习日志day10-协程的主要内容,如果未能解决你的问题,请参考以下文章

python基础学习日志day10-

python基础学习日志day10-进程池

python基础学习日志day10-事件驱动模型

python基础学习日志day10-SelectPollEpoll异步IO

python基础学习日志day5-各模块文章导航

python基础学习日志day8-实现进度条功能,for和yield实现