在erlang中,当我通过包含参数的start_link(A)启动gen_server模块时,我无法通过更改A来启动它两次。在控制台上,它显示{error,{已启动,< 0.61 0.0>}}。我该如何解决这个问题?谢谢!
答案 0 :(得分:4)
您的start_link
电话可能看起来像这样:
gen_server:start_link({local, foo}, bar, [], [])
这意味着,使用bar
作为回调模块启动gen_server,并在本地节点上注册名为foo
的新进程。如果已经有一个名为foo
的流程,您将收到already_started
错误。
要启动没有注册名称的gen_server,从而可以启动任意数量的gen_server,只需删除第一个参数:
gen_server:start_link(bar, [], [])