【发布时间】:2012-09-30 00:59:06
【问题描述】:
对于一些 erlang 资深人士来说,这可能是一个微不足道的问题,但很高兴知道,因为文档中并不清楚。许多分布式系统算法利用唯一 pid 的可比性来做出决策。 Erlang 很友好地提供了 pid 的内置比较,但是,我在徘徊在引用本地和外部 pid 的多台机器之间的比较是否保持一致。我的猜测是没有比较保证,但我可能是错的,是吗?
【问题讨论】:
标签: erlang
对于一些 erlang 资深人士来说,这可能是一个微不足道的问题,但很高兴知道,因为文档中并不清楚。许多分布式系统算法利用唯一 pid 的可比性来做出决策。 Erlang 很友好地提供了 pid 的内置比较,但是,我在徘徊在引用本地和外部 pid 的多台机器之间的比较是否保持一致。我的猜测是没有比较保证,但我可能是错的,是吗?
【问题讨论】:
标签: erlang
Erlang 在其 PID 结构中存储的不仅仅是一个简单的进程 ID;数据包括远程节点的唯一标识符(无论是另一个本地还是远程 VM)。
详情请见Can someone explain the structure of a Pid in Erlang?。
因此,您可以保证不会在错误的 VM 上向错误的 PID 发送消息(或误解接收消息的来源),至少不会在代码中的某处出错。
更新:我突然想到我可能一直在回答错误的问题。如果您询问比较将如何进行(例如,如果 Pid1 http://learnyousomeerlang.com/starting-out-for-real#bool-and-compare,排序将是恒定的。
【讨论】:
self() 似乎总是以 0 () 开头,因此它总是在来自另一个节点的任何其他 pid 之前。