1.简介Gen_server实现了通用服务器client_server原理,几个不同的客户端去分享服务端管理的资源(如图),gen_server提供标准的接口函数和包含追踪功能以及错误报告来实现通用的服务器,同时可以作为OTP监控树的一部分。Gen_server函数与回调函数之间的关系: 1 gen...
分类:
其他好文 时间:
2015-07-13 10:07:10
阅读次数:
108
1.简介Gen_server实现了通用服务器client_server原理,几个不同的客户端去分享服务端管理的资源(如图),gen_server提供标准的接口函数和包含追踪功能以及错误报告来实现通用的服务器,同时可以作为OTP监控树的一部分。Gen_server函数与回调函数之间的关系: 1 gen...
分类:
其他好文 时间:
2015-07-13 00:45:04
阅读次数:
319
最近简单了解一下erlang语言,操练了一下书里的例子,有机会debug;下面是主要模块 prime_server,使用gen_server作为behaviour: 1 -module(prime_server). 2 -export([new_prime/1, start_link/0]). 3 ...
分类:
其他好文 时间:
2015-07-08 20:48:01
阅读次数:
130
Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块子进程可以是另一个supervisor,也可以是一个worker进程worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现一个使用该模块来实现的...
分类:
其他好文 时间:
2015-06-01 00:30:59
阅读次数:
1004
1、在genserver的启动过程中,内部调用的是proc_lib:start_link(M,F,A,Time,SpawnOpts),当该函数被调用的时候,启动gen_server的进程必须wait,直到gen_server进程在执行init_it函数时,调用proc_lib:init_ack将gen_server的进程号返回给启动进程,至此一个gen_server进程才启动完成;
2、对于...
分类:
系统相关 时间:
2015-05-03 22:09:35
阅读次数:
215
1. 从start方法产出的独立gen_server进程 实验代码: %%%-------------------------------------- %%% @Module : %%% @Author : %%% @Email : %%% @Created : %%% @Description:...
分类:
其他好文 时间:
2015-04-28 13:58:57
阅读次数:
139
最近在项目中升级了第三方库,导致本应用gen_server中A进程中:handle_info({add,X},Sum) -> {noreply,Sum+X};结果这么简单的一个工作居然不工作了,一查,发现是第三方库进程B发来的消息由{add,X}------->{plus,X}在A进程中存...
分类:
系统相关 时间:
2015-03-09 20:47:17
阅读次数:
221
OTP包含了一组库和实现方式,可以构建大规模、容错和分布式的应用程序,包含了许多强大的工具,能够实现H248,SNMP等多种协议,核心概念是OTP行为,可以看作一个用回调函数作为参数的应用程序框架,类似一个J2EE容器。行为负责解决问题的非函数部分,回调函数负责解决函数部分。
通过gen_server模块可以实现事物语义和热代码交换,
1) 确定回调模块名
2) 编写接口函数
3) 在回调模块里编写6个必需的回调函数...
分类:
其他好文 时间:
2015-03-07 11:35:20
阅读次数:
148
从 rabbitMQ 代码中找到 gen_server2 , 对gen_server进行了一些优化。看到前辈写的博文也提到这个,引发了我的思考。( gen_server2 - OTP gen_server优化版 )文章从 joe 写的 gen_server2 和 gen_server 的测试结果开始探讨 erlang的消息接收机制。...
分类:
其他好文 时间:
2015-03-06 06:20:15
阅读次数:
178
1、同步调用
首先客户端进程通过call向gen_server发起同步调用,客户端进程会monitor向gen_server进程,返回一个监控句柄Mref,同时向gen_server进程发送{Label,{self(),Mref},Request}后,客户端进程执行receive便进入阻塞状态,等待对应消息的到来。gen_server进程收到客户端发来的消息对其进行解析,解析出{self(),...
分类:
其他好文 时间:
2015-02-13 08:06:57
阅读次数:
265