Erlang中的进程表示

test1() ->
    Pid = spawn(fun() -> receive stop -> void end end),
    Pid ! stop.

test2() ->
    register(tut, spawn(fun() -> receive stop -> void end end),
    tut ! stop.

-Pid的生成

-Pid表示为<X.Y.Z>,可以通过list_to_pid("<X,Y.Z>")的方式构造,其中X表示Erlang集群中节点的索引号,X为0表示是本地进程,否则表示进程运行在另外的节点上。

-发送消息的目的地可以是一个local或globalPid,local_registered_name,or{atom(),node()}.通过本地注册名字来发送消息时,需要一个name->Pid的映射关系。

-通过global:register_name可以注册全局的名字,同理,也需要一个name->Pid的映射关系。

引用
whereis/1
引用
global:whereis_name

-特别需要理解Erlang中localandglobal的同和异,涉及到它是如何跨越节点边界的机制,即分布式Erlang的一些实现问题,相关模块有global,rpc,pg2,inet等。

相关推荐