[Erlang 学习笔记]erlang behaviour小总结

应用erlang的behaviour 框架(gen_server,gen_fsm,gen_event,supervisor)在处理很多情况的时候省下大量不必要的代码,使用的时候在框架基础添加自定义逻辑就可以搭建项目了,可以说是精髓。


gen_server:提供的是client和server之间,请求和回调的处理。

     Client --请求-->Server       Server --回应-->Client

        具体描述:erlang behaviour小结之gen_server



gen_fsm:提供的是event状态转换和action触发处理。

     {State1*Event } ----> {Action,State2}

     StateName(Event,StateData) ->

               %%action here,

               {next_state,StateName',StateData'}.



gen_event:提供的是event manager对event的处理。自定义event manager收到event,进行自定义处理。

     event_manager(Event) ->

                  %%deal with the Event.

                  {ok}.


这里要说说gen_event和gen_fsm的一点区别:

        gen_fsm带有外部状态(自定义状态)的转换,一个状态由于某事件发生,导致状态发生变化,触发action的同时进入下一个状态,可以是个循环。

       类似水和冰的转换:水的状态为液态,此时遭遇了“冷却”事件,水变成冰,液态转换成固态;这时,固态的冰遭遇了“受热”事件,回头转换成液态水。

        gen_event对事件进行处理,可以理解为单向的。event给过来,event manager处理掉,就这样。



supervisor:提供的是对子进程的启动、停止、监控操作。可以说是一个异常处理框架,但又类似切面,可以干涉到项目的每个进程(启动或停止任一子进程)。如果子进程需要重启,supervisor会根据重启策略和最大重启频率这些参数确定如何重启子进程。



有了这几个behaviour,没太大必要再去封装发布类似功能的组件。

基于erlang behavoiur,构建高可行性的项目是方便简单的。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值