gpt4 book ai didi

erlang - 在 Erlang 中链接和监视同一个进程时会发生什么

转载 作者:行者123 更新时间:2023-12-02 01:26:51 24 4
gpt4 key购买 nike

如果进程A链接到B并且A监视B,当B死掉时,A会发生什么? A会收到两条消息吗?一个是监听“Down”消息,另一个是 B 的退出消息,如果是的话,顺序是什么,A 会做什么?

最佳答案

当链接和监视器被触发时,它们会发出信号 - 您可以在此处阅读更多详细信息:https://www.erlang.org/doc/reference_manual/processes.html#signals

查看 BEAM 模拟器代码,发现当进程终止时,链接会在监视器之前触发 - 请参阅 erl_process.c: https://github.com/erlang/otp/blob/master/erts/emulator/beam/erl_process.c#L14149

我似乎在任何地方都找不到这个事实的记录,但我猜这是为了确保如果进程 A 不捕获退出,那么当进程 B 的退出信号到达时,它会立即被终止。如果它首先收到监视器信号,它可能会开始对其进行操作,但在收到退出信号时会在操作中途被杀死。

关于erlang - 在 Erlang 中链接和监视同一个进程时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74345653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com