日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 基于Erlang的并發(fā)程序簡要

基于Erlang的并發(fā)程序簡要

來源:程序員人生   發(fā)布時間:2015-03-26 09:10:11 閱讀次數(shù):3236次

 Erlang中基本的并發(fā)函數(shù)

1)  Pid =spwan(Mod,Func,Args) 創(chuàng)建1個新的進(jìn)程來履行apply(Mod,Func,Args),與調(diào)用進(jìn)程并列運行,會使用最新的代碼定義模塊。

2)  Pid!Message 向Pid進(jìn)程異步發(fā)送Message,!為發(fā)送操作符

3)  Receive … end 接收消息

receive

           Pattern1[when Guard1]-> Expression1;

           Pattern2[whenGuard2]->Expression2;

         aftertime->

                   Expressions

         end.

內(nèi)置函數(shù)erlang:system_info(process_limit)可找出所允許的最大進(jìn)程數(shù),默許為262144.

進(jìn)程注冊的內(nèi)置函數(shù)有:

register(AnAtom,Pid)用名稱注冊Pid

uregister(AnAtom) 注銷關(guān)聯(lián)注冊

whereis(AnAtom)->Pid|undefined 檢查Pid是不是注冊

registered()->[AnAtom::atom()]返回系統(tǒng)里所有注冊進(jìn)程的列表。

 

并發(fā)程序模板:

-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.

 

每當(dāng)收到消息時會處理它并再次調(diào)用loop(),這1進(jìn)程稱為尾遞歸,無需消耗堆棧空間可以1直循環(huán)下去。

 

Erlang并發(fā)程序的毛病處理建立在遠(yuǎn)程監(jiān)測和處理毛病的基礎(chǔ)上,重點在補救而不是預(yù)防,幾近沒有防御性代碼,只有在毛病后清算系統(tǒng)的代碼,即讓其他進(jìn)程修復(fù)毛病和任其崩潰。

 

程序在出錯時立即崩潰的優(yōu)點:

1)  不編寫防御性代碼,直接崩潰簡單

2)  他人來修復(fù)

3)  不會使毛病惡化

4)  第1時間舉旗示意

5)  修復(fù)時不擔(dān)心緣由重在清算

6)  簡化了系統(tǒng)架構(gòu)

監(jiān)視和連接類似,但監(jiān)視是單向的,如果被監(jiān)視的進(jìn)程掛了會向監(jiān)視進(jìn)程發(fā)1“宕機“消息,而不是退出信號。基本毛病處理函數(shù)有:

-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運行在可信網(wǎng)絡(luò),通常在同1局域網(wǎng)的集群上,并受防火墻保護(hù)。基于socket的散布式模型基于TCP/IP不可信網(wǎng)絡(luò).

散布式Erlang的主要問題在于客戶端可以自行決定在服務(wù)器上分裂出多種進(jìn)程,合適于你具有全部的機器,并且想在單臺機器上控制他們。lib_chan 模塊讓用戶能夠顯式控制自己的機器分裂出哪些進(jìn)程。

 

為了在互聯(lián)網(wǎng)上履行并發(fā)程序:

1)  確保4369端口對TCP和UDP都開發(fā),該端口保存給epmd(Erlang端口映照守護(hù)進(jìn)程)

2)  選擇1個或1段連續(xù)的端口給散布式erlang使用,確保這些端口開放,例如:

$erl  -name …-setcookie …  -kernelinet_dist_listen_min Min

           Inet_dist_listen_maxMax

Rpc提供了許多遠(yuǎn)程調(diào)用服務(wù),global里的函數(shù)可以用來在散布式系統(tǒng)里注冊名稱和保護(hù)1個全連接的網(wǎng)絡(luò)。

Erlang集群就是1組帶有相同cookie的互連節(jié)點。創(chuàng)建cookie的3種方法:

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

2)  在Erlang啟動時,可以用

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品视频在线看 | 成人在线精品视频 | 日韩一级黄色 | 国产精品久久久久久久免费软件 | 国产精品成人一区二区三区 | 亚洲精品久久久久久久久久久久久 | 欧美一区国产 | 男男视频黄www动漫 超碰97国产精品人人cao | 欧美一区二区国产 | 国产日韩中文字幕 | 日日操夜夜操狠狠操 | 国产在线一区二区三区 | 99精品在线看 | 国产高清在线不卡 | 亚洲国产精品综合 | 成年人免费看片网站 | 天堂中文资源网 | 久久久久久久免费 | 久久精品网 | 欧美在线视频a | 国产精品成av人在线视午夜片 | 欧美性www| 激情自拍偷拍 | 亚洲自拍小视频 | 五月婷婷丁香 | 91亚洲精品一区二区 | 在线黄av | 91视频在线观看 | 一及毛片视频 | 8x拔播拔播国产在线视频 | 国产大片在线观看 | 精品久久久一区二区 | 国产高清一级 | av噜噜噜| 国产欧美久久久久久 | 91精品国产一二三 | 高清欧美精品xxxxx在线看 | 美女又黄又免费的视频 | 欧美黄色精品 | 国产一区精品视频 | 成人午夜视频网站 |