协程
协程 又称微线程
协程是pthon中别外一种实现多任务的方式 只不过比线程更小占用更小执行单元(理解为需要的资源)
python中的协程大概经历了如下三下阶段:
1.最初的生成器变形yield/send
2.yield from
3.在最近的python3.5版本中引入async/await关键字
使用greenlet完成多任务
安装模块: pip install greenlet
使用gevent完成多任务
安装模块: pip install gevent
简单总结
. 进程是资源分配的单位
. 线程是操作系统调度的单位
. 进程切换需要的资源最大,效率很低
. 线程切换需要的资源一般 效率一般(在不考虑GIL的情况下)
. 协程切换任务资源很小 效率高
. 多进程 多线程根据cpu核数不一样可能是并行的,但是协程是在一个线程中 所以是并发
greenlet --协程利用程序的IO 来切换任务
from greenlet import greenlet
import time
def demo1():
while True:
print('demo1')
gr2.switch()
time.sleep(0.5)
def demo2(