Erlang 匿名“gen_服务器”实例?

Erlang 匿名“gen_服务器”实例?,erlang,otp,Erlang,Otp,根据实际文档,gen_server:start_链接具有以下签名: ServerName={local,Name}{global,GlobalName}{via,Module,ViaName} 名称=原子 ..但如果我不想给某个gen_服务器实例分配不同的名称,既不是本地的,也不是全局的,而是想记住它的PID,并以匿名方式引用它,该怎么办?我能做到这样的行为吗 还有,为什么我需要这个?有一个参数,我们称之为N,它定义了同一个gen_服务器需要多少个实例。当前的实现类似于instance_1..i

根据实际文档,gen_server:start_链接具有以下签名:

ServerName={local,Name}{global,GlobalName}{via,Module,ViaName} 名称=原子

..但如果我不想给某个gen_服务器实例分配不同的名称,既不是本地的,也不是全局的,而是想记住它的PID,并以匿名方式引用它,该怎么办?我能做到这样的行为吗

还有,为什么我需要这个?有一个参数,我们称之为N,它定义了同一个gen_服务器需要多少个实例。当前的实现类似于instance_1..instance_N,动态生成这些原子,但实际上PIDs在这里就足够了。这就是为什么我想去掉atoms和perefer PID。

服务器名称参数用于注册,因此可以通过名称引用服务器。但此参数是可选的,存在没有此参数的启动链接版本:

start_link(Module, Args, Options) -> Result
start_link(ServerName, Module, Args, Options) -> Result
未注册由具有三个参数的版本启动的服务器。当人们倾向于使用其他方式而不是原子来引用服务器时,这非常有用,例如,当使用多个相同类型的服务器时。

服务器名称参数用于注册,因此可以通过名称引用服务器。但此参数是可选的,存在没有此参数的启动链接版本:

start_link(Module, Args, Options) -> Result
start_link(ServerName, Module, Args, Options) -> Result
未注册由具有三个参数的版本启动的服务器。当人们倾向于使用其他方法而不是原子来引用服务器时,例如当使用多个相同类型的服务器时,这是非常有用的