gpt4 book ai didi

erlang - 在 Erlang 中使用注册进程与传统语言中的全局变量有何不同?

转载 作者:行者123 更新时间:2023-12-02 08:38:44 24 4
gpt4 key购买 nike

对我来说,它们似乎是同一件事,只是注册的进程被术语“参与者”伪装了。

更新:

从那时起我就发现了我的思维方式的错误。我想因为我是 Erlang 新手,所以我在根本不属于的地方使用了 actor(是否有一个反模式名称?)

最佳答案

我经常看到使用进程注册来简化示例代码的示例(通过避免另一个函数参数)。这会导致新手倾向于大量使用进程注册(猴子看,猴子做)。

他们(新手)倾向于将更改注册作为正常操作的一部分。他们倾向于构造原子来注册,并让其他进程构造原子来查找进程。当你这样做时,你就拥有了共享状态并发(有限,但仍然很糟糕)。

注册表应该用于(好吧,这些是我自己的何时使用它们的规则):

  • 长期运行的服务。那么它就像你提到光速这样的常数时一样是全局状态。
  • 注册进程以帮助调试正在运行的系统,但这些名称永远不应该由代码引用,只能由 shell 中的人员引用

注册名称应有前缀(通常是应用程序名称),并且长时间运行的应用程序应位于 OTP .app 文件中。

关于erlang - 在 Erlang 中使用注册进程与传统语言中的全局变量有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312577/

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