gpt4 book ai didi

process - 什么时候应该使用 OTP 行为而不是 spawn?

转载 作者:行者123 更新时间:2023-12-04 14:46:05 24 4
gpt4 key购买 nike

我了解流程是如何运作的。而且我了解如何实现诸如 gen-server 等 OTP 行为。

但是我不清楚什么时候我会选择一种方法而不是另一种方法。

例如,Cesarini 等。 al.,在 Erlang Programming 中,通过产生一个进程,编写一个循环函数等来实现 p 240 上的数据库服务器。Joe Armstrong 在 Programming Erlang 中 p 196 的聊天客户端也产生了一个进程。

为什么不能将这些更好地实现为 OTP gen-servers?是为了教育目的吗?还是有合理的技术原因?

换句话说,什么经验法则会指导我实现一种方法而不是另一种方法?

非常感谢。

最佳答案

在上面的两个例子中,出于教育目的,首选简单的衍生进程 : 这个解释起来比较简单,这些作者不用解释OTP来表达他们想教的东西,无论如何理解Erlang中进程的概念很重要。即使在遵循 OTP 规则的实际应用程序中,也并非所有流程都使用 OTP 行为实现并插入到监督树中。

经验法则非常简单。 确定是否要遵循 OTP 设计原则 通过查看它带来了什么(代码更改、容错等)或者您是否计划与 OTP 兼容代码集成。如果您想要它带来的任何功能并避免重新发明轮子,请遵循 OTP 原则。

如果您坚持 OTP 原则,因此使用 gen_*行为,你应该为任何 做一个简单的 spawn不需要监督或代码升级的短暂过程 .它的生存时间不应超过部署发布的时间(否则,您将需要 soft_purge )。所有其他进程必须插入​​监督树中,并且可能实现 gen_* 行为。

关于process - 什么时候应该使用 OTP 行为而不是 spawn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19144894/

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