为什么Gevent可以用各种同步的库 而Tornado得用对应的异步库?

比如我想用request库,在Tornado里就得用它做的AsyncHTTPClinet。

阅读 6.5k
3 个回答

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

tornado里自己开线程呗~

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏