9

在什么情况下,像 eventlet/gevent 这样的东西会比 twisted 更好?Twisted 似乎是最常用的,但 eventlet/gevent 必须有一些优势......我不是在寻找特定场景的答案,只是泛泛而谈。

4

1 回答 1

10

我认为这是审美偏好的问题。

首先,eventlet 实际上可以使用 Twisted 进行联网,所以从某种意义上说,这不是一个非此即彼的问题,而是一个 this-is-built-on-top-of-that 的问题。

就个人而言,我认为不需要像 gevent 或 eventlet 这样的库,特别是自从@inlineCallbacksTwisted 中的装饰器出现以来,它们已经编写了看起来像是阻塞的代码。

但是,如果您有一个已经使用线程的大型代码库,并且您希望将其移植为事件驱动,那么像 eventlet 这样的东西可以为您节省一些输入,因为您不需要在yield任何地方插入 ' ..有些人,比如 EVE 网络游戏背后的人,认为用这种风格编写的代码更适合某些事情,比如 AI 代码。

于 2010-12-10T16:55:44.623 回答