文章目录
loop()-> receive {rectangle,Width,Ht}-> io:format("area of rectangle is ~p~n",[ Width*Ht]), loop(); {circle,R}-> io:format("area of circle is ~p~n",[ R*R*3.1415926]), loop(); Other-> io:format("area of circle is ~p~n",[Other]), loop() end.
Pid=spawn(fun area_server:loop/0).
书上滴 进程滴应用 创建一个进程对loop求值
Pid!{self(),{rectangle,6,10}}.
loop()-> receive {Form,{rectangle,Width,Ht}}-> Form!Width*Ht, %io:format("area of rectangle is ~p~n",[ Width*Ht]), loop(); {From,{circle,R}}-> io:format("area of circle is ~p~n",[ R*R*3.1415926]), loop(); Other-> io:format("area of circle is ~p~n",[Other]), loop() end.
带超时滴 receive
loop()-> receive {Form,{rectangle,Width,Ht}}-> Form!Width*Ht, %io:format("area of rectangle is ~p~n",[ Width*Ht]), loop(); {From,{circle,R}}-> io:format("area of circle is ~p~n",[ R*R*3.1415926]), loop(); Other-> io:format("area of circle is ~p~n",[Other]), loop() after 0-> true end.