erlang知识库 |
||
|
最近更新文章
Programming Erlang读书笔记3: Sequential Programming
module是Erlang代码的基本单元,我们写的所有function都存储在module里面,module存储在.erl文件里面 module编译成.beam文件后方可运行 在Erlang_HOME建立一个名为.erlang的文件: io:format("consulting .erlang in ~p~n", [element(2, file:get_cwd())]). ...
Programming Erlang读书笔记4: Exceptions
语法: try FuncOrExpressionSequence of Pattern1 [when Guard1] -> Expressions1; Pattern2 [when Guard2] -> Expressions2; ... catch ExceptionType: ExPattern1 [when ExGuard1] -> ExExpressions1; Exce ...
Programming Erlang读书笔记5: Advanced SP
所有的BIFs都属于erlang module,如erlang:tuple_to_list()、erlang:time(),但是大部分BIFs都auto-imported了,所以可以直接调用tuple_to_list()、time() erlang module的所有BIFs列表见:http://www.erlang.org/doc/man/erlang.html Binary是用来存储大量raw ...
Programming Erlang读书笔记6: 编译和运行Erl程序
启动和停止Eshell $ erl 1> halt(). 查看/添加代码查找路径 code:get_path(). code:add_patha(Dir). code:add_pathz(Dir). erl -pa Dir1 -pa Dir2 ... -pz DirK1 -pz DirK2 查看载入的module和查看出错的module code:all_loaded(). co ...
Programming Erlang读书笔记7: Concurrency
1, Erlang程序由许多进程组成,这些进程可以相互发送消息 2,这些消息可能接收并理解也可能不接收不理解,如果你希望消息被接收并理解,你必须等待应答 3,进程组可以连在一起,如果一组进程中的一个死掉,则该组的其他进程会收到一个说明那个进程为啥死掉的消息
Programming Erlang读书笔记8: Concurrency Programming
在Erlang里: 1,创建和销毁进程非常快 2,进程间发送消息非常快 3,在所有的操作系统间进程行为一致 4,可以有大量的进程 5,进程不共享内存并且完全独立 6,与进程交互的唯一途径是发送消息 Concurrency Primitives Pid = spawn(Fun) Pid!Message receive Pattern1 [when Guard1] -> Expressions ...
Programming Erlang读书笔记9: 并行程序里的错误
使用BIF link将两个节点连接起来,如果其中一个节点B退出,则另一个节点A会收到{'EXIT', B, Why}的信号 可以创建一个on_exit(Pid, Fun)方法来捕获某个Pid进程的死掉: on_exit(Pid, Fun) -> spawn(fun() -> process_flag(trap_exit, true), link(Pid), receive {'EXI ...
Programming Eralng读书笔记10: 分布式编程
分布式程序指设计用于运行在网络中的可以通过消息传递相互交流彼此的活动的计算机上的程序 分布式应用的好处:Performance、Reliability、Scalability、Intrinsically distributed application、Fun、 1, key-value server的简单例子: -module(kvs). -export([start/0, store/2, ...
Erlang基于Socket实现简单聊天室
1,chat_server.erl -module(chat_server). -export([start/1]). -define(TCP_OPTIONS, [list, {packet, 0}, {active, false}, {reuseaddr, true}]). start(Port) -> Pid = spawn(fun() -> manage_clients([]) ...
Erlang的分布式编程
1,什么是分布式程序? Erlang分布式程序是设计用来在网络计算机上运行并且只可以通过消息传递来协调活动 2,为啥要写分布式程序? 1) 性能 通过将程序的不同部分分布到不同计算机来并行运行,以此提升性能(适用于密集型、CPU是瓶颈的计算) 2) 可靠性 通过将程序分布来构建容错系统,以此提升可靠性。如果一台机器失败了,我们可以在另一台机器上继续计算 3) 伸缩性 如果我们scale up,迟早 ...
如何写超强伸缩性的多游戏玩家服务器
附标题:如何构建超强伸缩性的游戏服务器而集容错、负载均衡和无限伸缩性于一身 原文:Writing Low-Pain Massively Scalable Multiplayer Servers 介绍 本文以我的OpenPoker项目为例子,讲述了一个构建超强伸缩性的在线多游戏玩家系统。 OpenPoker是一个超强多玩家纸牌服务器,具有容错、负载均衡和无限伸缩性等特性。 源代码位于我的个人站点上 ...
Joe Armstrong:关于并行编程和Erlang的十个问题
原文:Ten Questions with Joe Armstrong about Parallel Programming and Erlang 第一部分:关于并行编程的通用问题 1) Michael:我们进入了多核时代,你认为并行计算最终会成为主流吗?或者这仅仅是一个阶段并且很快对并行编程感兴趣的人将(又一次)变成高性能社区的一员? Joe:是的,绝对主流——我们讨论的是双核时性能提高两倍而 ...
gen_server入门
gen_server入门 1)什么是gen_server? gen_server是OTP(Open Telecom Platform)的一个组件,OTP是Erlang的应用程序框架,gen_server定义了自己的一套规范,用来写Erlang服务器程序 gen_server manual: http://www.erlang.org/doc/man/gen_server.html 2)使用gen ...
OTP Design Principles Overview
1,Supervision Trees 来源于workers和supervisor模型 workers就是实际执行计算的进程 supervisors是监控workers的进程,如果workers进程崩溃,supervisors可以负责重启workers进程 supervision tree将代码分层为supervisors和workers,方便构建容错系统 2,Behaviours Behavio ...
OTP Design Principles: Gen_Server Behaviour
OTP Design Principles: Gen_Server Behaviour 1,Client-Server原则 client-server模型由一个中心服务器和任意多的客户端组成 该模型主要用来做资源管理操作,不同的客户端共享一个通用的资源,服务器负责管理该资源 2,例子 -module(ch3). -behaviour(gen_server). -export([start_li ...
群组知识库热门文章
- 44295 进入Erlang的世界
- 11562 gen_server入门
- 11530 如何写超强伸缩性的多游戏玩家服务器
- 8621 Erlang类型及函数声明规格
- 6362 使用etop查看系统中进程信息
最新评论
我是erlang 菜鸟,弱弱的问一下,erlang帮助文档,那有怎么用,连 Mod名、Func名,是什 ...
wrj913 评论了 Programming Erlang读书笔记8: Concurrency ...
wrj913 评论了 Programming Erlang读书笔记8: Concurrency ...
不明白为什么第一个例子handler(Socket)中close(Socket)后还调用了handle ...
erlangguy 评论了 Erlang中的half-sync/half-async和Leader/F ...
erlangguy 评论了 Erlang中的half-sync/half-async和Leader/F ...
event manager本质上是维护一个{Module, State}对的list,每个Module ...
erlangguy 评论了 OTP Design Principles: Gen_Event Behavio ...
erlangguy 评论了 OTP Design Principles: Gen_Event Behavio ...