Erlang进程,节点

[进程]
创建进程
Pid = spawn(Fun)
Pid = spawn(Mod, Func, Args)
Pid = spawn(Node, Mod, Func, Args)
使用MFA启动进程是热升级的关键所在

杀死僵尸进程
kill(Pid)

注册进程 - 给进程绑定一个容易记住的原子名称
register(AnAtom, Pid)

注销进程 - 接触进程名称的绑定
unregister(AnAtom)

返回一个系统中所有被注册的进程名称列表
registered()

判断一个名称是否被注册
whereis(AnAtom)

远程工程调用
rpc:call(Node, Mod, Func, Args)

[消息]
发送消息
Pid ! Message

接受消息 - 遍历一次进程的邮箱,以匹配一个消息
receive
  Pattern1 -> Expr1;
  ...
after Time
  ExprN
end

特殊的延时函数
receive
after Time
  true
end


[节点,互通节点集]
一个Erlang节点就是一个自治系统,拥有独立进程集和地址空间,Erlang集群的节点可以在同一局域网上的不同机器上,它们之间可以互相通信。

为某个Erlang节点集(以共同的Magic Cookie标识)建立一个Erlang节点
erl -name Name -setcookie Cookie

如何确保欲构成Erlang节点集中的各个节点共享相同Magic Cookie?


[链接进程集]
在当前进程和另一个进程之间建立链接,链接是无向的,其中一个进程消亡时,系统会向另一个发出退出信号(Exit Signal),接收到退出信号的进程通常也会消亡,除非它是系统进程(这时,退出信号会转化成一个普通消息{'EXIT', Pid, Why})。
link(Pid)

解除指定进程和当前进程的链接
unlink(Pid)

指定当前进程为系统进程(可以接收和处理退出信号)
process_flag(trap_exit, true)

创建和本进程有链接的一个进程(比单独使用spawn和link更安全)
spawn_link(Fun) - > Pid

你可能感兴趣的:(erlang)