美文网首页
2019-07-10

2019-07-10

作者: peheader | 来源:发表于2019-07-15 16:49 被阅读0次

erlang的gen_server

看官方的文档gen_server刚开始看的迷迷糊糊,后来谷歌到这些这些就恍然大悟了

gen_server行为模式

gen_server是开发中最常用的一种模式,使用gen_server时,需在模块中定义behaviour属性为gen_server,并实现回调接口init/1,handle_call/3,handle_cast/2,handle_info/2,code_change/3,terminate/2。

Module:init/1 在进程初始化时调用,其参数为列表,它相当于类的构造函数。调用gen_server:start或gen_server:start_link时会自动回调Module:init/1。init/1执行成功返回{ok,State},State为进程状态,记录进程的内部信息。当进程结束时,会自动回调Module:terminate/2函数,用户可以做相关收尾工作,它相当于类中的析构函数。

handle_cast/2接收gen_server:cast/2发过来的消息。gen_server:cast为异步调用,不需等待处理结果。

handle_call/3接收gen_server:call/2发送的消息,gen_server:call为同步调用,需等待返回结果。

handle_info/2处理进程收到的其他消息,如直接给进程发送的消息 Pid ! Msg。

相关文章

网友评论

      本文标题:2019-07-10

      本文链接:https://www.haomeiwen.com/subject/kosckctx.html