源码位置位于安装目录的lib/stdlib/src下。之前在使用gen_server时,由于之前自己实现过一个gen_server,因此对它内部的机制也能知道个七七八八,最近在用erlang的fsm模块,突然想读一读它得源码,这才突然发现erlang的源码内部还是做了很复杂的工作,尤其是有个“阴魂不...
分类:
其他好文 时间:
2014-06-06 19:34:29
阅读次数:
271
timer:tc/3对于统计函数运行时间是个很不错的函数,截图timer:tc/1,tc/2,tc/3的API:拿斐波那契数列入手做个讲解:-module(fib).-export([fib/1]).fib(0)
-> 0;fib(1) -> 1;fib(N) when N>1 -> fib(N-1...
分类:
其他好文 时间:
2014-06-06 17:41:20
阅读次数:
325
概述=================================前端时间学习cpp,感到有些疲惫,也感到了一些困惑,久思未解。
正好放松下自己,就拿起了erlang。erlang是一个高并发的编程语言,而且支持热部署,适合做DB
server。虽然erlang的计算能力相对于他的并发能力要逊色...
分类:
其他好文 时间:
2014-06-06 14:14:52
阅读次数:
231
record的定义-record(useinfo,{id,name,pass}).%动态的传值和取值,这里的Record是{useinfo,1,lvn,123456}。put_record(Record)
-> Name = Record#userinfo.name, Name. %% #u...
分类:
其他好文 时间:
2014-06-06 09:21:11
阅读次数:
253
Riak是以 Erlang
编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。Riak支持多节点构建的系统,每次读写请求不需要集群内所有节点参与也能胜任。像这样的系统,我们需要版本机制来确定哪个值是最新的。所以就引入了向量时钟...
分类:
其他好文 时间:
2014-06-06 09:16:36
阅读次数:
416
1、多线程基础
线程通信,是指线程之间以何种机制来交换信息。其中通信的机制有两种:内存共享和消息传递。内存共享是指线程之间通过写-读内存中的公共状态隐式进行通讯(Java);消息传递在线程之间没有公共状态,线程之间必须明确通过发送消息来显式进行通讯(Erlang)。
同步是指程序用于控制不同线程.....
分类:
编程语言 时间:
2014-06-05 19:05:36
阅读次数:
398
看了erlang的一些开源网络框架RabbitMQ、Ranch,他们都使用多个进程同时accept一个socket。这种方式在使得socket端口监听的工作分担了更多的调度机会,但是,在erlang中,socket接受一个新连接后,如果想让另一个进程处理消息,就要显式的调用gen_tcp:controlling_process(Socket, Pid)。所以问题来了,erlang多个进程同时监听一个socket安全吗?文章将会重点讨论这个问题及对这个问题做优化。...
分类:
其他好文 时间:
2014-06-03 03:52:52
阅读次数:
218
Server managementthe Erlang node and the Erlang
applicationStarting nodesmultiple Erlang applications can run inside the same
nodean application on no...
分类:
其他好文 时间:
2014-05-31 01:32:32
阅读次数:
371
问题:如何构造一个典型的erlang application?
下面我们通过把[Erl_Question07] Erlang 做图形化编程的尝试:纯Erlang做2048游戏
的游戏改为application启动来做示范原来的通过erl Script 启动是可以的,变成application有什么好...
分类:
移动开发 时间:
2014-05-31 00:49:06
阅读次数:
365
Erlang的模式匹配用来处理二进制数据可谓是得心应手。不仅直观,而且超乎想象的简单。在C++中,处理二进制数据首先要管理缓冲区。然后再按字节进行操作,如果要处理的数据不是按字节对齐,则需要进行位移等操作。操作过程复杂又难懂,如果再没有注释,那对于维护这段代码的人来说简直就是噩梦。例如:操作一串.....
分类:
其他好文 时间:
2014-05-30 00:10:42
阅读次数:
521