演员模特是否仅限于特定语言?

gin*_*ime 9 architecture erlang scala actor

我正在阅读一篇关于erlang和演员模型的有趣博客文章.我还听说scala支持actor模型.从我到目前为止收集到的那些小东西开始,actor模型将处理分解成通过传递消息相互通信的组件.通常,这些过程是不可变的.

在架构级别,这些功能是特定语言还是更多?更具体地说,你不能只用几乎任何语言实现相同的actor模型,只是使用某种形式的消息队列来在工作进程之间传递消息吗?(例如,使用像芹菜这样的东西).或者像erlang和scala这样的语言是否只是透明地,更快地完成了这个?

dsm*_*ith 12

当然,您几乎可以在任何语言中定义"Actor库",但在Erlang中,模型是用语言编写的,并且实际上是唯一可用的并发模型.

虽然Scala的演员系统得到了很好的实施,但在一天结束时,它仍然容易受到Erlang免受的一些危害.我会提请你注意这篇论文.

任何以任何支持共享可变状态的命令式语言实现的Actor库都是这种情况.

一个有趣的例外是Nodes.js.正在与节点之间的演员进行一些工作,这些演员可能表现出与Erlang相同的隔离属性,因为没有共享的可变状态.