Twisted, gevent eventlet — когда я буду их использовать

При каких обстоятельствах что-то вроде eventlet/gevent будет лучше, чем скручивание? Twisted кажется наиболее часто используемым, но eventlet/gevent должны иметь некоторые преимущества... Я не ищу ответа на конкретный сценарий, просто общие положения.


person Varriount    schedule 10.12.2010    source источник


Ответы (1)


Думаю, это вопрос эстетических предпочтений.

Во-первых, eventlet действительно может использовать Twisted для работы в сети, так что в некотором смысле это не вопрос «или-или», это вопрос «это-построено-поверх-этого».

Лично я не вижу необходимости в таких библиотеках, как gevent или eventlet, особенно с появлением декоратора @inlineCallbacks в Twisted, который уже пишет код, который выглядит как блокирующий.

Но если у вас есть большая библиотека кода, которая уже использует потоки, и вы хотите портировать ее так, чтобы она управлялась событиями, что-то вроде eventlet может сэкономить вам время на набор текста, поскольку вам не нужно везде вставлять 'yield'. Некоторые люди, такие как разработчики онлайн-игры EVE, думают, что код, написанный в этом стиле, просто лучше подходит для некоторых вещей, таких как код ИИ.

person Glyph    schedule 10.12.2010