gevent
原理:当一个协程遇到IO(指的是input output 输入输出,比如网络、文件操作等)操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经常使程序处于等待状态,有了gevent为我们自动切换协程,就保证总有greenlet在运行,而不是等待IO
安装:pip install gevent
# monkey补丁,必须写在文件的最前面
from gevent import monkey
monkey.patch_all()
"""
加上monkey.patch_all()之后,gevent创建的协程在遇到io耗时操作时才会自动切换
注意点:monke补丁只能在单线程中使用
"""
import time
import gevent
def func1():
for i in range(5):
print("------正在做事情1------")
time.sleep(1)
def func2():
for i in range(6):
print("------正在做事情2------")
time.sleep(1)
if __name__ == '__main__':
c1 = gevent.spawn(func1)
c2 = gevent.spawn(func2)
c1.join()
c2.join()