Erlang pid 比较保证

标签 erlang

对于一些 erlang 老手来说,这可能是一个微不足道的问题,但很高兴知道,因为文档中并不清楚。许多分布式系统算法利用唯一 pid 的可比性来做出决策。 Erlang 很好地提供了 pid 的内置比较,但是,我想知道引用本地和外部 pid 的多台机器之间的比较是否保持一致。我的猜测是没有比较保证,但我可能是错的,不是吗?

最佳答案

Erlang 在其 PID 结构中存储的不仅仅是一个简单的进程 ID;数据包括远程节点的唯一标识符(无论是另一个本地虚拟机还是远程虚拟机)。

参见Can someone explain the structure of a Pid in Erlang?了解详情。

因此,您可以保证不会向错误虚拟机上的错误 PID 发送消息(或误解收到消息的来源),至少不会在代码中的某个位置出错。

更新:我觉得我很可能回答了错误的问题。如果您询问比较如何进行(例如,如果 Pid1 < Pid2,Pid1 是本地还是远程),我可以自信地说,基于 http://learnyousomeerlang.com/starting-out-for-real#bool-and-compare 的排序将是恒定的。 .

关于Erlang pid 比较保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12804380/

相关文章:

audio - 如何在 Erlang 中录制声音

erlang - Erlang中字符串的HMAC SHA256十六进制摘要,如何?

module - 如何将模块中的函数分配给 Erlang 中的变量?

erlang - 删除列表元素只出现一次

c - erl_interface 链接器错误

erlang - 在erlang中打印数字的每个数字的问题

C 和 Erlang : Erlang Port example

erlang - 如何从 Dialyzer 修复 "will never return since the success typing is [...] and the contract is.."?

erlang - 当 epmd 端口打开时,最坏的情况是什么?

php - Erlang 和 PHP 之间的加密