我的erlang代码中有gen_server。当我尝试运行它时,下面的代码不起作用。例如:
.......
my_server:start_link().
io:format("AAAAAAAAAAAAAAAAAAA"),
.....
现在io:format / 1不起作用。如果我用spawn运行gen_server:
......
spawn(fun() -> my_server:start_link() end)
io:format("AAAAAAAAAAAAAAAAA")
......
现在io:格式有效。为什么呢?
谢谢。
答案 0 :(得分:2)
我认为start_link
模块中的my_server
函数会调用gen_server:start_link/3
或gen_server:start_link/4
函数。
gen_server:start_link
将依次调用init
模块的my_server
功能。我猜你的init
函数是一个阻塞调用,这就是你的初始代码片段没有返回的原因。