我使用一种名为 SALSA 的语言开始涉足面向 Actor 的编程。 ,它允许参与者从一台机器移动到另一台机器。
我想知道这是否可以使用 Scala 或 Erlang 来完成,这两种面向 Actor 的编程语言背后有更多的动力。
如果这些语言中的任何一种支持此功能,您能给我指出一些引用如何实现此类功能的 Material 吗?
最佳答案
嗯,Erlang 不允许(据我所知)移动进程(至少,PID 与节点绑定(bind))。如果您想对特定函数执行此操作,您可以在另一个节点上启动一个进程(例如,使用 rpc:call 和包装函数)并将状态传递给它。
当然,如果您保留状态而不是在进程字典中,那么这是可行的。当然,新进程的 PID 会有所不同,但您可以例如让现有进程挂起并将消息转发到新进程。
关于scala - Erlang/Scala 将 Actor 从一个节点迁移到另一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9385834/