erlang - 使用未注册、动态创建的 gen_server 的示例?

标签 erlang erlang-otp

关于使用 OTP 应用程序中指定的 gen_servers 的教程比比皆是。但是,我一直无法找到动态生成未注册(未命名)服务器的好例子。有人可以指出一个好的、简单的例子吗?例如,ejabberd 则不然,因为它有很多地方让我试图理解的核心思想感到困惑。

谢谢。

最佳答案

最简单的例子是:
省略 gen_server:start 中的第一个参数 {local,name}: 即假设您的模块名为 mod:

start(ArgX) ->
    gen_server:start(mod, [ArgX], []).

然后你就可以:

> {ok, Pid} = gen_server:start(mod, [66], []).

并且 gen_server 已启动并正在运行。
每次调用此函数都会生成一个新的未命名 gen_server 进程。 请注意,此示例使用 start(而不是 start_link)进行独立使用(在主管上下文之外)。

关于erlang - 使用未注册、动态创建的 gen_server 的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255184/

相关文章:

elixir - :simple_one_for_one worker 的重启频率

string - 如何使用 foldl 找出一个字母在字符串中重复的次数?

ubuntu - 从 Ubuntu 中删除或降级 Erlang

erlang - Elixir/Erlang : Communication with external process

Erlang:sys:get_status/1 是否会干扰超时?

Erlang:通过主管启动时 gen_server 崩溃

tcp - 谁使用 TCP 端口?

erlang - 使用Genserver订阅Phoenix PubSub的正确方法

erlang - 在 Erlang 中,如何从模块中导入所有函数?

erlang - gen_服务器 :call causes server to crash with a noproc