Elixir 进程管理:链接、监控与自定义监管器实现
1. 进程链接与退出处理
在 Elixir 中,进程之间的链接是一种强大的机制,它允许进程之间相互感知对方的状态。让我们通过一个具体的例子来深入了解进程链接和退出处理。
首先,我们创建三个进程并将它们链接在一起,同时设置前两个进程捕获退出信号:
iex> [p1, p2, p3] = Ring.create_processes(3)
[#PID<0.97.0>, #PID<0.98.0>, #PID<0.99.0>]
iex> [p1, p2, p3] |> Ring.link_processes
iex> send(p1, :trap_exit)
iex> send(p2, :trap_exit)
接下来,我们尝试杀死进程 p2 ,并观察会发生什么:
iex> Process.exit(p2, :kill)
#PID<0.97.0> received {:EXIT, #PID<0.98.0>, killed}
#PID<0.97.0> received {:EXIT, #PID<0.99.0>, killed}
最后,我们检查哪些进程仍然存活:
iex> [p1, p2, p3]
超级会员免费看
订阅专栏 解锁全文
8

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



