比方说下面一段代码
make_process(List) when is_list(List)->
Pid1=spawn(fun()->do_action(List) end), register(pid1,Pid1), Pid2=spawn(fun()->do_action() end), register(pid2,Pid2).
do_action(List)->
receive {ok,Data}-> io:format("hello world!~n") end, do_action(List).
do_action()->
io:format("xxxxxxxx~n").
执行完毕后,通过is_process_alive(where(pid1))查看到pid1进程还在执行,pid2进程已经执行完毕后就不存在咯。
所以Erlang里面要生成一直运作的进程,就需要不断的循环执行,receive接受消息,接受消息后从消息信箱中删除,然后又
继续循环等待接受消息。这就是Erlang进程的生命周期。
时间: 2024-10-14 02:33:07