我用一种叫做SALSA的语言接触了面向角色的编程,它允许角色从一台机器移动到另一台机器。
我想知道这是不是可以使用Scala或Erlang来完成,这是两种面向Actor的编程语言,它们背后的发展势头更大。
如果这两种语言中的任何一种都支持这一特性,您能给我一些参考如何实现这样的东西的资料吗?
发布于 2012-02-22 08:27:53
嗯,Erlang不允许(afaik)移动进程(至少,PID绑定到节点)。如果要对某个特定函数执行此操作,可以在另一个节点上启动一个进程(例如,使用rpc:call和包装器函数),并将状态传递给它。
当然,如果您保留您的状态,而不是在流程字典中,这是可行的。当然,新进程的PID会有所不同,但是,例如,您可以让现有进程保持挂起状态,并将消息转发给新进程。
发布于 2012-02-22 06:28:58
作为介绍,让我们来看看非常激动人心的akka documentation。这绝对值得一读。也许你可能会重新考虑将角色从一台机器移动到另一台机器,因为据我所知,akka会通过配置自动完成这一操作。
https://stackoverflow.com/questions/9385834
复制相似问题