Python的类Erlang并发性?
Python有没有像Erlang那样的并发性,特别是网络上的透明参与者?我看过像和这样的东西,但他们似乎没有演员的网络透明度Python的类Erlang并发性?,python,concurrency,erlang,python-stackless,greenlets,Python,Concurrency,Erlang,Python Stackless,Greenlets,Python有没有像Erlang那样的并发性,特别是网络上的透明参与者?我看过像和这样的东西,但他们似乎没有演员的网络透明度 我仍然无法跨越Erlang/OTP的障碍,所以我对是否有更接近家乡的地方感兴趣。不太感兴趣。Erlang从一开始就是为了支持参与者而设计的,Python则不是。我能想到的最符合要求的是库,但即使这样也不完全正确。与其尝试让Python更像Erlang,不如让Erlang更像Python 和语言编译器,它们生成BEAM文件,可以利用Erlang BEAM emulator的
我仍然无法跨越Erlang/OTP的障碍,所以我对是否有更接近家乡的地方感兴趣。不太感兴趣。Erlang从一开始就是为了支持参与者而设计的,Python则不是。我能想到的最符合要求的是库,但即使这样也不完全正确。与其尝试让Python更像Erlang,不如让Erlang更像Python 和语言编译器,它们生成BEAM文件,可以利用Erlang BEAM emulator的所有功能,包括网络透明消息传递 Efene有一个“ifene”变体,它定义带有空格的块,就像Python一样。否则,它与JavaScript最为相似 Elixir语法最接近Ruby
这两种语言都比Erlang更接近Python。关于其中一些特性,请参阅stackless Python 试试Axon/Kamaelia
它与PyPy兼容,因此您可以使用PyPy的JIT进行基于参与者/流的编程,并显著加快执行速度。这不是真正的并发性,但可以在网络上分配任务负载方面为您提供所需的功能。请参阅。我不确定它是如何处理错误的。是我创建并以其命名的一个包,它实现了
caine.SupportingActor
,这是一个用户友好的python并发参与者模型
默认情况下,caine.SupportingActor
类具有以下属性/函数:
:托管队列。消息会像这样传递给参与者,收件箱
foo.inbox.put('bar')
:超时前,消息接收之间允许的秒数超时
:使用收件箱中的消息执行的功能需要实现receive
:引发异常时要执行的函数句柄
:处理完成时要执行的函数回调
:调用时结束处理cut
此外,
caine.SupportingCast
类继承了caine.SupportingActor
的所有功能,同时允许指定数量的参与者在不重复的情况下处理来自同一收件箱的消息。您能详细说明一下您试图实现的目标吗?@jathanism actors水平可伸缩性简而言之,在多个节点上,Python甚至在多个核心上都没有解释器并发性,是什么让您认为它将在多个联网机器上拥有它@琥珀色多处理
和救援管道?我只能建议“跳过障碍”。学习二郎很有趣,学习新的编程语言总是很有趣,而且对于获得新的见解非常有用——养成每年学习一种新语言的习惯——我第一次在一个有期限的真实项目中使用Erlang,Erlang给我带来的生产力的提高是值得的——没有错过我的期限:-)我没有老实说,就像Candygram使用沉重的OS线程一样,它可以重写为使用绿色线程和多处理。使用OS线程是因为在首次编写时没有可行的替代方案。主要的一点是,它至少实现了并发原语。顺便说一句,它实现了一个非常类似于演员的模型。我已经看过了这些模型,但它们看起来还不够成熟,不适合制作使用。。。