【发布时间】:2012-03-12 06:02:41
【问题描述】:
我使用一种名为SALSA 的语言学习了面向Actor 的编程,它允许Actor 从一台机器移动到另一台机器。
我想知道这是否可以使用 Scala 或 Erlang 来完成,这两种面向 Actor 的编程语言具有更大的动力。
如果这些语言中的任何一种都支持此功能,请您指出一些参考如何实现此类功能的材料?
【问题讨论】:
标签: scala erlang distributed-computing actor
我使用一种名为SALSA 的语言学习了面向Actor 的编程,它允许Actor 从一台机器移动到另一台机器。
我想知道这是否可以使用 Scala 或 Erlang 来完成,这两种面向 Actor 的编程语言具有更大的动力。
如果这些语言中的任何一种都支持此功能,请您指出一些参考如何实现此类功能的材料?
【问题讨论】:
标签: scala erlang distributed-computing actor
嗯,Erlang 不允许(afaik)移动进程(至少,PID 绑定到节点)。如果您想为特定函数执行此操作,您可以在另一个节点上启动一个进程(例如,使用 rpc:call 和一个包装函数)并将状态传递给它。
当然,如果您将状态保留在周围而不是在进程字典中,那么这会起作用。而且,当然,新进程的 PID 会有所不同,但例如,您可以将现有进程挂起,然后将消息转发给新进程。
【讨论】:
作为介绍,请看一下非常令人兴奋的 akka documentation。绝对值得一读。也许您可能会重新考虑将演员从一台机器移动到另一台机器,因为据我所知,akka 通过配置自动执行此操作。
【讨论】: