协程支持:
并发原理:跳过正在延时操作的函数,去执行另一个函数。
安装:
pip install gevent
from gevent import monkey
import gevent
import time
# 功能:将所有 延时操作 都转换成 monkey可识别的代码
# 意义:不必手动替换每一个延时的代码.
monkey.patch_all()
# 函数
def fun1(t):
time.sleep(t)
'''
如果不使用 monkey.patch_all()
延时的操作就必须要使用
gevent.sleep(t)
'''
print(t)
# 等待协程把列表中的函数都执行结束,再结束当前程序
# 证明:下面的延时操作是乱序的, 但根据协程会自动跳过延时操作,最先完成的一定是延时最短的函数
gevent.joinall([
gevent.spawn(fun1, 0.6),
gevent.spawn(fun1, 0.4),
gevent.spawn(fun1, 0.2),
gevent.spawn(fun1, 0.1),
gevent.spawn(fun1, 0.3),
gevent.spawn(fun1, 0.5),
])