2

Erlang 中的 register_name 和 register 函数有什么区别?两者都将 PID 注册为名称!

4

2 回答 2

6

挖掘文档,我发现它register()erlang模块的一部分,而register_name()它是模块的一部分global。因此,这两个函数之间的主要区别似乎是register_name()将为 Erlang 节点网络全局注册一个名称。

全局注册名称的能力是分布式 Erlang 系统编程的核心概念。在这个模块中,实现了 register/2 和 whereis/1 BIF(用于本地名称注册)的等效项,但针对的是 Erlang 节点网络。注册名称是进程标识符 (pid) 的别名。全局名称服务器监视全局注册的 pid。如果一个进程终止,该名称也将被全局注销。

来源

于 2012-11-19T01:40:07.983 回答
2

register_name 是 Global 模块的一部分,它处理在一个包含许多节点的系统中全局注册 Pid。register/2 是 Erlang 模块的一部分,并将名称与本地节点的 Pid 相关联。

于 2012-11-19T01:37:50.033 回答