协程之gevent模块
用gecent模块实现函数之间的切换
from gevent import monkey monkey.patch_all() # 相当于把下面的模块打包,让gevent模块可以识别一下模块的IO操作 import time import gevent from threading import currentThread def eat(): print('eat :', currentThread()) # 可以看到协程的信息 print('eat1') time.sleep(1) # 也有IO操作,但是没有进行切换 # gevent.sleep(1) # 也有IO操作,但是没有进行切换 print('eat2') def sleep(): print('sleep :', currentThread()) print('sleep1') time.sleep(1) # gevent.sleep(1) print('sleep2') g1 = gevent.spawn(eat) g2 = gevent.spawn(sleep) g1.join() # 检测到主程序有了IO操作就切换 g2.join() # 检测到主程序有了IO操作就切换 # gevent.joinall([g1, g2]) # 相当于g1.join(),g2.join()

浙公网安备 33010602011771号