gen_server中handle_call、cast、info的用法

2009-03-09
Erlang中的gen_server有handle_call、handle_cast和handle_info这三个接口函数,其函数定义十分相近,但使用上有一些细微的差别:

handle_call用于处理远程调用(remote procedure calls),一般应返回一个Reply({reply, Reply, State})作为调用结果;

handle_cast一般不返回Reply({noreply, NewState}),而只改变服务器的状态,一般用于对服务器进行某些操作,比如关闭服务器;

handle_info用于处理其他一些“自发性”的信息(Spontaneous Message),即诸如相关连接进程崩溃所发出的{’EXIT’, Pid, Why}信息,同样一般没有Reply而只改变服务器状态。

译自《Programming Erlang》

M-OSCAR | Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com