本文的格式为:代码—>debug时查看到的各进程运行的状况及最终总结。
start(N) ->
Pid = my_spawn(spawn_fun,N),
io:format(“the pid is ~p~n”,[Pid]),
Pid.
my_spawn(Func,N) ->
Monitor = spawn(fun() ->
Fs = list_func(N,[],spawn_fun),
io:format(“Module name is ~p~n”,[?MODULE]),
Id = [spawn_link(?MODULE,F,[])||F <- Fs],%%这个spawn_link的第二个参数要为一个原子类型
receive
{‘DOWN’,_,process,Pid,Why} ->
io:format(“Pid:~p quit,Reason:~p~n”,[Pid,Why]),
io:format(“正在重启进程~n”),
spawn_link(Func),
io:format(“重启完毕~n”)
after 15000 ->
exit(“test test test”)
%% io:format(“is List ~p,the list is ~p~n”,[is_list(Id),Id]),
%% lists:min(Id) ! {ok,”exit test”}
end
end),
io:format(“Monitor:~p~n”,[Monitor]),
Monitor.
spawn_fun() ->
io:format(“hello world:~p~n”, [self()]),
receive
{ok,Message} ->
io:format(“about to exit!~p~