Erlang 中的注册进程

Erlang 中进程间通信主要依靠向进程传递消息,可以用进程的 Pid 代表进程发送消息

1 Pid ! "some message".

当多个进程需要向某进程发送消息时,一种方法是由该进程的父进程将该进程的进程号作为参数传递给所有需要与该进程通信的进程。 当然,还有一种方法,就是使用注册进程。

注册进程

注册进程指进程在虚拟机中注册一个原子作为进程的代表名字,这个原子就可以代表进程。注册的原子具有全局作用域。

这里的全局作用域指:

  • 若工作在非分布式状态,全局作用域指当前的 Erlang 虚拟机

  • 若工作在分布式状态,全局作用域指当前 Erlang 虚拟机节点

也就是说,注册进程所注册的原子可以在当前 Erlang 虚拟机中全局使用。

使用 erlang:register(atom, Pid) 将进程 Pid 注册到原子 atom,之后就可以把此时原子就可以当作 Pid 那样使用消息发送操作符

1 atom ! "some message".