Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但它们被协作式地调度。
1 import gevent 2 3 def foo(): 4 print('Running in foo') 5 gevent.sleep(1) 6 print('Explicit context switch to foo again') 7 8 def bar(): 9 print('Explicit context to bar') 10 gevent.sleep(2) 11 print('Implicit context switch to bar again') 12 gevent.joinall([ 13 gevent.spawn(foo), 14 gevent.spawn(bar), 15 ])