<p><a href="http://www.gevent.org" rel="nofollow noreferrer">gevent</a>是<a href="http://blog.gevent.org/2010/02/27/why-gevent/" rel="nofollow noreferrer">eventlet cleaned up</a>。</p>
<p>在API方面,它遵循与标准库(特别是线程和多处理模块)相同的约定。所以你有一些熟悉的东西,比如<a href="http://www.gevent.org/gevent.queue.html" rel="nofollow noreferrer">Queue</a>和<a href="http://www.gevent.org/gevent.event.html#gevent.event.Event" rel="nofollow noreferrer">Event</a>要处理。</p>
<p>它只支持<a href="http://www.monkey.org/~provos/libevent/" rel="nofollow noreferrer">libevent</a>(<strong>update:</strong><a href="http://blog.gevent.org/2011/04/28/libev-and-libevent/" rel="nofollow noreferrer">libev since 1.0</a>)作为reactor实现,但充分利用了它,它具有基于libevent http的快速WSGI服务器,并通过libevent DNS解析DNS查询,而不像大多数其他库那样使用线程池。(<strong>更新:</strong>因为1.0c-ares用于进行异步DNS查询;threadpool也是一个选项。)</p>
<p>像eventlet一样,它通过使用<a href="http://codespeak.net/py/0.9.2/greenlet.html" rel="nofollow noreferrer">greenlets</a>使回调和延迟变得不必要。</p>
<p>看看例子:<a href="https://github.com/gevent/gevent/blob/master/examples/concurrent_download.py" rel="nofollow noreferrer">concurrent download of multiple urls</a>,<a href="http://blog.gevent.org/2009/10/10/simpler-long-polling-with-django-and-gevent/" rel="nofollow noreferrer">long polling webchat</a>。</p>