问一个关于Gevent与Tornado调用库的问题,geventtornado,Gevent可以用各种同


Gevent可以用各种同步的库 而Tornado得用对应的异步库?比如我想用request库,在Tornado里就得用它做的AsyncHTTPClinet。

tornado里自己开线程呗~

二者在底层异步的机制是不一样的。Tornado的底层IOLoop是纯python写的,Gevent 1.0以后底层的事件分发基于libev。libev是C写的。所以二者的异步机制是不一样的,尽管原理差不多,Tornado也可以用gen模块来实现协程,同样可以用同步的方式写异步操作。

gevent有猴子补丁(Monkey Patch),可以将任何用纯Python代码实现的阻塞I/O变成非阻塞I/O

编橙之家文章,

评论关闭