对于一些 erlang 资深人士来说,这可能是一个微不足道的问题,但很高兴知道,因为文档中并不清楚。许多分布式系统算法利用唯一 pid 的可比性来做出决策。Erlang 很友好地提供了 pid 的内置比较,但是,我想知道在引用本地和外部 pid 的多台机器之间的比较是否保持一致。我的猜测是没有比较保证,但我可能错了,是吗?
问问题
826 次
1 回答
4
Erlang 在其 PID 结构中存储的不仅仅是一个简单的进程 ID;数据包括远程节点的唯一标识符(无论是另一个本地还是远程 VM)。
请参阅有人可以解释 Erlang 中 Pid 的结构吗?详情。
因此,您可以保证不会在错误的 VM 上向错误的 PID 发送消息(或误解接收到的消息的来源),至少不会在代码中的某处出错。
更新:我突然想到我可能一直在回答错误的问题。如果您询问比较将如何工作(例如,如果 Pid1 < Pid2,Pid1 是本地还是远程),我可以肯定地说,基于http://learnyousomeerlang.com ,排序将是恒定的/starting-out-for-real#bool-and-compare。
于 2012-10-09T19:00:03.453 回答