Erlang 如何启动几个非otp进程并用不同的名称注册它们
对于我的一个“学习项目”,我有一组erlang进程(实现gen_server的不同模块)。每个进程都生成并监督一个子进程,该子进程包含在一个不实现otp行为的模块中 因此,我有以下情况:Erlang 如何启动几个非otp进程并用不同的名称注册它们,erlang,Erlang,对于我的一个“学习项目”,我有一组erlang进程(实现gen_server的不同模块)。每个进程都生成并监督一个子进程,该子进程包含在一个不实现otp行为的模块中 因此,我有以下情况: gen_server_a <-> module_a gen_server_b <-> module_b gen_server_c <-> module_c gen\u服务器a模块a 发电机服务器模块 发电机服务器模块 每个子进程执行相同的一组操作: 用模块名称注册自身(例
gen_server_a <-> module_a
gen_server_b <-> module_b
gen_server_c <-> module_c
gen\u服务器a模块a
发电机服务器模块
发电机服务器模块
每个子进程执行相同的一组操作:
gen_server_a <-> module_generic (registered as module_a)
gen_server_b <-> module_generic (registered as module_b)
gen_server_c <-> module_generic (registered as module_c)
gen\u服务器\u a模块\u通用(注册为模块\u a)
发电机服务器模块通用(注册为模块)
发电机服务器c模块通用(注册为模块c)
我怎样才能做到这一点?只是在生成过程中传递一个用于注册进程的原子?是否有其他选项?在
模块\u generic
中构建自己的启动链接/1
,该链接生成流程功能,然后注册Pid:
start_link(Name) ->
Pid = spawn_link(?MODULE, loop, []),
register(Name, Pid),
Pid.