我想在子集中存储不同的进程。如何连接子集的进程
S =子集,P =过程
-module(fibo).
-export([main/0,proc/0]).
main() ->
S1 = [] ,S2 = [], S3 = [],
% init each processes with [1,1] = first and second fibo number
P1 = spawn(S1,?MODULE, proc,[1,1]),
P2 = spawn(S2,?MODULE, proc,[1,1]),
P3 = spawn(S3,?MODULE, proc,[1,1]),
P4 = spawn(S3,?MODULE, proc,[1,1]).
proc() ->
receive
{S,setGroup, N} ->
io:format(" ~p - ~p - ~p~n",[S,self(),N]);
_ ->
io:format(" failed ~n")
end.
,但如果我运行main
功能我得到这个异常/错误:
** exception error: bad argument
in function spawn/4
called as spawn([],fibo,proc,[1,1])
in call from fibo:main/0 (fibo.erl, line 36)
为什么我不能连接P1 ... P4与S1 ... S3?
line 36 = P1 = spawn(S1,?MODULE,proc,[1,1]),
okey,我可以写这样的东西,连接P1与子集S1? 'P1 = spawn(?MODULE,proc,[]),... S1 = [P1,P2,P3],... P1! {[1,1],setGroup,S1}。 (),N,self(),S]);} proc() - > receive {N,setGroup,S} - > io:format(“〜p - 〜p - 〜p〜n” _ - > io:format(“failed〜n”)end.' – Sam 2014-08-30 13:05:34
是的,但请注意'N'会得到值[1,1]'。 – rvirding 2014-08-30 14:22:23