最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 基于Erlang的并发程序简要

     Erlang中基本的并发函数

    1)  Pid =spwan(Mod,Func,Args) 创建1个新的进程来履行apply(Mod,Func,Args),与调用进程并列运行,会使用最新的代码定义模块。

    2)  Pid!Message 向Pid进程异步发送Message,!为发送操作符

    3)  Receive … end 接收消息

    receive

               Pattern1[when Guard1]-> Expression1;

               Pattern2[whenGuard2]->Expression2;

             aftertime->

                       Expressions

             end.

    内置函数erlang:system_info(process_limit)可找出所允许的最大进程数,默许为262144.

    进程注册的内置函数有:

    register(AnAtom,Pid)用名称注册Pid

    uregister(AnAtom) 注销关联注册

    whereis(AnAtom)->Pid|undefined 检查Pid是不是注册

    registered()->[AnAtom::atom()]返回系统里所有注册进程的列表。

     

    并发程序模板:

    -module(ctemplate).

    -compile(export_all).

     

    start() ->

             Spwan(?MODULE,loop,[]).

     

    rpc(Pid,Request) ->

             Pid! {self(),Request},

             receive

                       {Pid,Respone}->

                                Response

             end.

     

    loop(X) ->

             receive

                       Any->

                                Io:format(“Received:~p ~n”, [Any]),

                                loop(X)

             end.

     

    每当收到消息时会处理它并再次调用loop(),这1进程称为尾递归,无需消耗堆栈空间可以1直循环下去。

     

    Erlang并发程序的毛病处理建立在远程监测和处理毛病的基础上,重点在补救而不是预防,几近没有防御性代码,只有在毛病后清算系统的代码,即让其他进程修复毛病和任其崩溃。

     

    程序在出错时立即崩溃的优点:

    1)  不编写防御性代码,直接崩溃简单

    2)  他人来修复

    3)  不会使毛病恶化

    4)  第1时间举旗示意

    5)  修复时不担心缘由重在清算

    6)  简化了系统架构

    监视和连接类似,但监视是单向的,如果被监视的进程挂了会向监视进程发1“宕机“消息,而不是退出信号。基本毛病处理函数有:

    -spec spwan_link(Fun) ->Pid

    -spec spwan_monitor(Fun)-> {Pid,Ref}

    -spec process_flag(trap_exit,true)

    -spec link(Pid) ->true

    -spec unlink(Pid) -> true

    -spec erlang:monitor(process,Item) ->Ref

    -spec exit(Why) -> none()

    散布式模型:散布式erlang 和基于socket的散布式模型。散布式erlang运行在可信网络,通常在同1局域网的集群上,并受防火墙保护。基于socket的散布式模型基于TCP/IP不可信网络.

    散布式Erlang的主要问题在于客户端可以自行决定在服务器上分裂出多种进程,合适于你具有全部的机器,并且想在单台机器上控制他们。lib_chan 模块让用户能够显式控制自己的机器分裂出哪些进程。

     

    为了在互联网上履行并发程序:

    1)  确保4369端口对TCP和UDP都开发,该端口保存给epmd(Erlang端口映照守护进程)

    2)  选择1个或1段连续的端口给散布式erlang使用,确保这些端口开放,例如:

    $erl  -name …-setcookie …  -kernelinet_dist_listen_min Min

               Inet_dist_listen_maxMax

    Rpc提供了许多远程调用服务,global里的函数可以用来在散布式系统里注册名称和保护1个全连接的网络。

    Erlang集群就是1组带有相同cookie的互连节点。创建cookie的3种方法:

    1)  在文件$HOME/.erlang.cookie寄存相同的cookie

    2)  在Erlang启动时,可以用

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » 基于Erlang的并发程序简要

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级