Functional programming 主管和员工流程是否应注册为全球流程-二郎

Functional programming 主管和员工流程是否应注册为全球流程-二郎,functional-programming,erlang,Functional Programming,Erlang,我刚开始学习Erlang一个月,很想知道主管模块和工作模块是否都应该在单例进程中注册为全局模块?您不将模块注册为全局模块,您根本不注册模块。如果一个模块加载到一个节点上,那么在该节点上的任何进程中计算的任何其他模块都可以调用原始模块中的函数。无需注册、导入或其他任何必要的内容 如果您的意思是将进程注册为全局进程,那么这取决于期望哪些节点能够找到该进程。如果只能从同一节点访问,则本地寄存器/2就足够了。但是,如果希望它是全局可访问的,则需要在所有节点上注册它,这通常是使用global模块和{glo

我刚开始学习Erlang一个月,很想知道主管模块和工作模块是否都应该在单例进程中注册为全局模块?

您不将模块注册为全局模块,您根本不注册模块。如果一个模块加载到一个节点上,那么在该节点上的任何进程中计算的任何其他模块都可以调用原始模块中的函数。无需注册、导入或其他任何必要的内容

如果您的意思是将进程注册为全局进程,那么这取决于期望哪些节点能够找到该进程。如果只能从同一节点访问,则本地
寄存器/2
就足够了。但是,如果希望它是全局可访问的,则需要在所有节点上注册它,这通常是使用
global
模块和
{global,Name}
参数在启动监控器和行为时进行的

编辑:

好的,唯一真正需要全局注册的进程是那些需要全局可访问的进程,在本例中可能只有工作进程。主管可能只需要在本地注册(如果有的话)


请注意,在本地或全局注册主管时,默认情况下不会注册工作进程,即使它是其子进程。您必须显式注册每个进程。

规则很简单:您应该按名称注册要与之通信的进程

如果你要和主管沟通,那么你必须注册主管。若你们要和工人沟通,你们应该注册工人


在我的实践中,我必须更频繁地注册工人,并且只需要注册实施
简单的一对一
策略的主管,这些策略被用作流程工厂

您是指“全局”还是“全局”在集群中的所有Erlang节点上注册可用性就像在单个Erlang节点中注册可用性一样?是的,集群中所有Erlang节点的可用性我的意思是进程。我正在跨多个节点运行singleton gen服务器进程(计数器)。那么主管流程应该注册为全局流程,或者工人应该注册为全局流程,或者两者都应该注册为全局流程?