概念:
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的进程已经重启了。

Erlang的link机制允许将进程连接在一起,当连接的任一进程终止时,其他进程也会随之终止。该机制在确保关键业务进程协作时不可或缺,避免因某个进程异常导致整个系统的不稳定。通过示例展示了link的使用,并探讨了如何设置trap_exit标志来保护重要进程,使其不受连接组中其他进程死亡的影响。
3293

被折叠的 条评论
为什么被折叠?



