Эрланг-подобный параллелизм для Python?

Есть ли что-нибудь для Python, у которого есть параллелизм, такой как Erlang, особенно прозрачные актеры над сетями? Я смотрел на вещи, такие как greenlet и stackless , но у них, похоже, нет сетевой прозрачности для актеров.

Я все еще не могу полностью преодолеть барьер Erlang / OTP, поэтому мне интересно, есть ли что-то ближе к дому.

7 Solutions collect form web for “Эрланг-подобный параллелизм для Python?”

На самом деле, нет. Эрланг был разработан с нуля для поддержки актеров, Python не был. Самое близкое, что я могу думать о том, что соответствует законопроекту, – это библиотека Candygram , но даже это не совсем правильно.

Вместо того, чтобы пытаться сделать Python более похожим на Erlang, как сделать Erlang более похожим на Python?

Efene и Elixir являются компиляторами языка, которые производят файлы BEAM, которые могут использовать все возможности эмулятора Erlang BEAM, включая сетевые прозрачные сообщения.

У Efene есть вариант ifene, который определяет блоки с пробелами, например Python. В противном случае он больше похож на JavaScript.

Синтаксис Elixir ближе всего к Ruby.

Оба языка ближе к Python, чем к Erlang.

Попробуйте Axon / Kamaelia

Он совместим с PyPy, поэтому вы получаете программное обеспечение, основанное на актерах / потоках, и значительно ускоряете скорость выполнения с помощью JIT PyPy.

caine , пакет, который я создал и назвал в честь этого парня , реализует caine.SupportingActor , удобную модель одновременного актера для python.

По умолчанию класс caine.SupportingActor имеет следующие атрибуты / функции:

  • inbox : управляемая очередь. Сообщения передаются актеру так: foo.inbox.put('bar') .
  • timeout : разрешенное количество секунд между приемами сообщений до истечения времени ожидания.
  • receive : функция, выполняемая с использованием сообщений из папки «Входящие», требует реализации.
  • handle : функция, выполняемая при возникновении исключения.
  • callback : функция, выполняемая при завершении обработки.
  • cut : завершает обработку при вызове.

Кроме того, класс caine.SupportingCast наследует все функции caine.SupportingActor одновременно предоставляя определенное количество участников каждому сообщению процесса из одного и того же почтового ящика без дублирования.

Это не параллелизм, но Сельдерей может дать вам то, что вы ищете, с точки зрения распределения нагрузки на нагрузку по сети.

См. Пюкка . Я не уверен, как он обрабатывает ошибки.

Также для некоторых из этих функций см. Пикс-файл без стекол.

  • Сервер кометы Python
  • Хорошая библиотека python для проектирования mmo? Дизайн на основе актера
  • Python / Erlang: В чем разница между Twisted, Stackless, Greenlet, Eventlet, Corouts? Являются ли они похожими на процессы Эрланга?
  • Почему генераторы не могут мариноваться?
  • Какая библиотека / структура модели Actor для python и Erlang-like?
  • Python - лучший язык программирования в мире.