根据实际文档,gen_server:start_link
具有以下签名:
ServerName = {本地,名称} | {global,GlobalName} | {via,Module,ViaName}
名称= atom()
..但是,如果我不想为某个实例分配不同的名称(都不是local
或global
)gen_server
,而是想记住它PID
并以这种匿名方式引用它,该怎么办?我能够实现这种行为吗?
PS为什么我需要这个?有一个参数,我们称之为N
,它定义了需要多少个实例gen_server
。当前的实现方式类似于instance_1
.. instance_N
,可以即时生成那些原子,但是实际上,PID在这里就足够了。这就是为什么我想摆脱原子并更喜欢PID。
在服务器名参数用于注册,以便服务器可以通过名称来引用。但是此参数是可选的,存在start_link
不带此参数的版本:
start_link(Module, Args, Options) -> Result
start_link(ServerName, Module, Args, Options) -> Result
由具有三个参数的版本启动的服务器未注册。当一个人倾向于使用其他方式而不是原子来引用服务器时,例如当使用多个相同类型的服务器时,这很有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句