Erlang 中的 register_name 函数和寄存器函数有什么区别?两者都将PID注册为名称!
文档,我发现register()
是erlang
模块的一部分,而register_name()
是global
模块的一部分。因此,这两个函数之间的主要区别在于register_name()
将为 Erlang 节点网络全局注册一个名称。
全局注册名称的能力是 分布式 Erlang 系统的编程。在本模块中, 相当于寄存器/2 和 whereis/1 BIF(对于本地名称) 注册)实现,但用于 Erlang 节点网络。一个 注册名称是进程标识符 (PID) 的别名。全球 名称服务器监视全局注册的 PID。如果一个进程 终止后,该名称也将全局取消注册。
源
全局模块的一部分,处理跨多个节点的系统全局注册Pid。 register/2 是 Erlang 模块的一部分,它将名称与本地节点的 Pid 相关联。