如何多次启动gen_server模块

How to start gen_server module many times

在 erlang 中,当我通过包含参数的 start_link(A) 启动 gen_server 模块时,我无法通过更改 A 启动它两次。在控制台上,它显示 {error ,{已经开始,<0.61.0>}}。我该如何解决这个问题?谢谢!

可能您的 start_link 电话看起来像这样:

gen_server:start_link({local, foo}, bar, [], [])

也就是说,启动一个gen_server,使用bar作为回调模块,并在本地节点上注册名称为foo的新进程。如果已经有一个名为 foo 的进程,您将收到 already_started 错误。

要在没有注册名称的情况下启动一个 gen_server,从而可以启动任意数量的它们,只需删除第一个参数:

gen_server:start_link(bar, [], [])