gevent是python的一個併發框架,採用協程實現併發目的,用起來也很是簡單html
gevent的docs:http://www.gevent.org/contents.htmlpython
一個最簡單的例子:併發
import gevent import gevent.monkey gevent.monkey.patch_all() def foo(i, a, b, c): print('Running in foo' + str(i) + ' ' + str(a) + str(b) + str(c)) gevent.sleep(0) print('Explicit context switch to foo again') tasks = [ gevent.spawn(foo,i, 1, 2,3) for i in range(0,10)] gevent.joinall(tasks)
其中,框架
gevent.monkey.patch_all()的做用是將一些常見的阻塞,如socket、select等會阻塞的地方實現協程跳轉,而不是在那裏一直等待,致使整個協程組沒法工做。