考虑所有链接在树中的进程,可以是正式的监督树,也可以是一些临时结构。
现在,考虑一下这棵树下的某个孩子或工人,上面有一个父母或主管。我有两个问题。
如果它需要被杀死或关闭,我们希望“优雅地”退出这个过程,因为它可能会在更新某些帐户余额的过程中进行。假设我们已经正确地编写了一些终止函数,并通过适当的管道将此进程连接到其他进程。现在假设这个过程在它的主循环中工作。终止的信号进来了。这个终止发生在哪里(或者问题应该是何时)?换句话说,何时会调用终止?这个东西会在它正在运行的循环中间抢占自己并调用终止吗?它会等到循环结束但再次开始循环之前吗?它只会在接收模式下这样做吗?等等。
同样的问题,但没有终止功能已被编码。假设父进程是主管,并且该子进程遵循正常的 OTP 约定。父母告诉孩子关机,或者父母崩溃或其他什么。孩子处于其主循环中。何时/何地/如何发生关机?在主循环的中间?之后呢?等等。