2012-01-22 2 views
14

Новая версия судов PyPy со встроенными Stackless. Насколько я знаю, связанный Stackless - это не то же самое, что происхождение Stackless с 2001 года с продолжением. Так что в основном это зеленая структура нитей с диспетчером.Stackless in PyPy и PyPy + greenlet - отличия

Greenlet - это вращающийся стековый механизм, который обеспечивает функциональность зеленых потоков без стека в качестве модуля расширения.

Есть ли польза от использования "родной" Stackless из PyPy чем PyPy + greenlet + некоторый диспетчеру (например: GEvent)? Или проблема в том, что я не могу использовать эти типы расширений с PyPy? Чтобы быть более конкретным: я знаю, что PyPy имеет собственную реализацию greenlet (на основе континуума). Но мне любопытно, как можно связать внешнюю грилью с gevent и внутреннюю в PyPy.

Есть ли у PyPy асинхронная библиотека ввода-вывода для Stackless, которая будет использоваться вместо стандартной?

Я знаю сам стекс и другие асинхронные потоки световых потоков для python (eventlet, gevent, twisted ...). Поэтому я не смотрю на различия между ними, а преимущества, которые приходят в форме pypy, со встроенными в stackless.

ответ

13

Есть ли у PyPy асинхронная библиотека ввода-вывода для Stackless, которая будет использоваться вместо стандартной?

По PyPy 2.6.1 и 2.4.0 PyPy3 вы можете использовать asyncio (с помощью пакета PyPi), чтобы заменить асинхронные функции из Stackless.

Есть ли польза от использования «родной» Stackless из PyPy чем PyPy + greenlet + некоторые диспетчеру

Вне богаче Stackless API (например, травление микро-нитей), она может быть скорость, так как планировщик часть времени выполнения, написанного на C. Тесты должны сделать это очевидным или нет.

Для получения дополнительной информации о без штабелирования, ознакомьтесь с этой статьей What is Stackless?