概念:
link字面来说就是连接的意思,语法link(Pid),连接成功返回true,失败false,他的作用是在同一个连接组中,若其中一个进程死亡,那么进程组内的进程都死亡。
为什么有:
我们来试想一下一个例子,我们有一个业务需要几个进程协作完成,缺一不可,若因为物理或者其他的原因有其中一个进程死掉了,那么我们现在肯定想其他进程停止,所以我们就需要有link了。
例子:
-module(ex2).
-export([f/0]).
f() ->
receive
die -> exit(die)
end.
-module(ex3).
-export([f/0]).
f() ->
receive
die -> exit(die)
end.
在这个例子中我们创建了2个进程,我们也可以看出原来我们shell的Pid为<0.58.0>,在我们发送死亡命令后,shell的Pid发生了改变,说明shell的进程已经重启了。
额外思考:
有一种情况,在连接组中,有一个或者几个进程是很重要的,我们并不想如果在它随连接组中其中一个进程死亡而死亡,这时我们可以把它设为 process