erlang 并发spawn部分学习

本文探讨了Erlang中并发编程的spawn函数使用,通过示例展示了不同情况下的进程行为。包括当monitor进程在15秒后退出,以及子进程在5秒后退出,分析了monitor进程为何未能接收到子进程的DOWN消息。同时,文章还提供了对普通spawn操作的测试,解释了如何处理进程间的消息传递和匹配规则。
摘要由CSDN通过智能技术生成

本文的格式为:代码—>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~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值