下载此文档

Erlang并发编程.docx


文档分类:IT计算机 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
Erlang并发编程
文档版本跟踪
文档版本跟踪
日期
变更说明
备注
2014-11-02
A outline
2014-11-03
A 1
2014-11-08
A 2 3
2014-11-17
A 4
缺FSM
说明:A(新增)、M(修改)、D(删除)
0 范围
Erlang的现实世界建模方式
Erlang进程创建
Erlang进程设计模式
Erlang进程错误处理
1 Erlang Concurrency Modeling Philosophy
Armstrong在[2]中跳出程序语言在处理并发应用场景时洋洋洒洒的急迫性、跃跃欲试的一站式解决方案阐述桎梏,创造性的提出“暂时忘却编程,思考一下现实世界里发生着什么”问题。
解决问题一直是CS科学家、IT工程师标榜的影响现实世界的方式,自计算机科学被质疑是否应该是一门学科/科学开始。图灵机、冯▪诺依曼机器,还有我不理解的量子机器等,真的是仿生学的产物或是对现实世界的模拟吗,但她们确确实实的成功了,并影响着领域内参与者的思维。用natural 还是artificial,似乎是taste的问题。不扯了!
将Armstrong的阐述摘录如下:
我们理解并发。
世界是并行的。
Erlang程序反映了我们思考和交流的方式。
人类表现为独立的个体,通过发送消息进行交流。
如果有人死亡,其他人会注意到。
Erlang concurrency constructor overview
Constructor
Description
self()
返回所在执行进程的标识符
Pid = spawn(Mod, Func, Args)
创建进程,该进程执行Mod:Func(Args)
Pid ! Message
向进程发送消息
receive … end
接收消息
register(AnAtom, Pid)
注册进程
unregister(AnAtom)
移除进程注册名
whereis(AnAtom) -> Pid | undefined
检测进程注册名
registered() -> [AnAtom::atom()]
系统中所有注册进程的列表
link(Pid)
调用进程与Pid之间设置双向链接
unlink(Pid)
移除链接
spawn_link(Mod, Func, Args)
原子操作:生成进程并设置双向链接
spawn_monitor(Mod, Func, Args)
元组操作:生成进程并设置调用进程与新进程间的监控
process_flag(trap_exit, Flag)
将调用进程设置为系统进程
Ref = erlang:monitor(process, Pid)
生成对Pid的单向监控
erlang:demonitor(Reference)
移除监控
erlang:demonitor(Reference, [flush])
移除监控,并清空监控进程邮箱中相关信息
exit(Reason)
调用进程以原因Reason终止
exit(Pid, Reason)
向进程Pid发送退出信号
2 创建进程
►Sample: echo server[1]
-module(echo).
%% API
-export([start/0, loop/0]).
%%%===================================================================
%%% API
%%%===================================================================
start() ->
%Pid = spawn(echo, loop, []),
%Pid ! {self(), hello},
register(echo, spawn(echo, loop, [])),◄注册新生成的进程
echo ! {self(), hello},◄向进程发送消息,消息不限于tuple,可以是任一term
receive ◄当前进程阻塞式接收消息
%{Pid, Message} ->
% io:format("~w~n", [Message])
{_Pid, Message} ->
io:format("~w~n", [Message])
%end,
%Pid ! stop.
end.
loop() ->
receive
{From, Message} ->
From ! {self(), Message},

Erlang并发编程 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人260933426
  • 文件大小219 KB
  • 时间2017-08-21