协程
也是实现多任务的一种方式
又称为微线程,纤程,也称为用户级线程
在不开辟线程的基础上完成多任务,也就是在单线程的情况下完成多任务
多个任务按照一定顺序交替执行
,通俗理解只要在 def 里面只看到一个 yield 关键字表示就是协程
实现多协程一:yield
实现多协程二:greenlet
已经实现了协程,但是还要
人工切换
安装 / 导入
使用
实现多协程三:gevent
IO
指的是input output
输入输出,比如网络,文件操作
IO
非常耗时,gevent自动切换协程
,就保证了 greenlet 运行,而不是等待 IO
安装 / 导入
使用
切换执行
实现多协程四:打补丁
- 打补丁,让 gevent 框架识别耗时操作,比如:time.sleep,网络请求延时
monkey.patch_all()
注意
- 当程序是一个死循环,并且还能有耗时操作,就不需要加上
join
方法了 - 因为程序需要一直执行,不会退出
评论区