协程并发框架gevent及其用法

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等会阻塞的地方实现协程跳转,而不是在那里一直等待,致使整个协程组没法工做。
相关文章
相关标签/搜索