erlang之link

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

概念:

                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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值