标签:重入 地方 pytho 操作 轻量级 简化 问题 用户态 多个
一:什么是协程
协程(Coroutine):协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。
协程调度切换时,将寄存器上下文和栈保存在其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈
因此:协程能保留上一次调用的时的状态,每次过程重入时,就相当于进入上一次调用的。
换种说法:进入上一次离开时所处逻辑流的位置。
二:协程的优点缺点
优点:
1)无需线程上下文切换的开销
2)无需原子操作锁定及同步的开销
3)方便切换控制流,简化编程模型
4)高并发+高扩展性+低成本:一个CPU支持上万的协程不是问题,很适合高并发
缺点:
1)无法利用多核资源:协程本质是单线程,他不能同时单个CPU的多个核用上,协程需要和进程配合
才能运行在多CPU上。
2)进行阻塞(Blocking)操作(如IO时)会阻塞整个程序
三:
标签:重入 地方 pytho 操作 轻量级 简化 问题 用户态 多个
原文地址:http://www.cnblogs.com/lixiang1013/p/7103270.html