Erlang学习心得

最近接触了款项目,需要使用到Erlang,就把最近的学习心得拿出来分享一下。
首先对于Erlang的适用方向是分布式系统,里面会用到很多的进程来处理业务逻辑,但是这里的进程和我们平常在其他语言里(如:c/c++,java,c#等)进程有很大的区别,我们以前认知的进程都是基于操作系统的进程,是内核级别的,而Erlang里面的进程是基于他的虚拟机之上的进程,是个轻量级的,没有很多内核级别的上下文环境,所以他的应用还是比较方便的。

说到Erlang就不的不说他的经典应用OTP,OTP是Erlang开发者提供的一个应用框架,里面有很多我们常用的基础功能,有gen_server,gen_fsm…,我在学习中就用到了这两个模块。
1.gen_server,是一个回调模块,和win32里面的回调是一个道理,但是比win32封装的更精致,而且他的源码是公开的,有兴趣的可以去看看他的底层实现。
下面来说说他的实现吧。
gen_server有调用模块和处理模块,
调用:
gen_server:call().–同步
gen_server:cast().–异步
接受处理:
handle_call(Request, From, State)–同步
handle_cast(Request, State)–异步

  1. gen_fsm的调用和处理模块:
    调用:
    gen_fsm:send_event().–异步
    gen_fsm:sync_send_event().–同步
    gen_fsm:send_all_state_event().–同步发送给所有状态
    接收处理:
    Module:StateName/2 异步请求
    Module : StateName/3 同步请求
    Module:handle_event/3 –接收send_all_state_event()消息的处理。

StateName是自定义的状态处理函数,需要和状态名保持一致。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值