Erlang編程語(yǔ)言的第一印象
和朋友切磋高并發(fā)的時(shí)候,又一次涉及了Erlang,Erlang出自名門(mén)愛(ài)立信,具有穩(wěn)定性極高的虛擬機(jī)和平臺(tái)庫(kù),F(xiàn)acebook用它實(shí)現(xiàn)了聊天系統(tǒng),Amazon 開(kāi)發(fā)了SimpleDB,最令人驚嘆的是What'sApp了,高并發(fā)的處理機(jī)制令人矚目,是時(shí)候了解一下Erlang了。
世界是并行的,Erlang程序反應(yīng)了我們思考和交流的方式,人作為個(gè)體通過(guò)發(fā)送消息進(jìn)行交流,如果有人死亡,其他人會(huì)注意到。
Erlang里的模塊類(lèi)相當(dāng)于OOPL中的類(lèi),進(jìn)程相當(dāng)于OOPL里的對(duì)象或類(lèi)實(shí)例。
并發(fā)編程可以用來(lái)提升性能,創(chuàng)建可擴(kuò)展和容錯(cuò)的系統(tǒng),以及編寫(xiě)清晰和可理解的程序來(lái)控制現(xiàn)實(shí)世界里的應(yīng)用。
并發(fā)程序是以一種并發(fā)編程語(yǔ)言編寫(xiě)的程序,并發(fā)編程語(yǔ)言擁有用于編寫(xiě)并發(fā)程序的語(yǔ)言結(jié)構(gòu)。Erlang的并發(fā)程序是由互相通信的多組順序進(jìn)程組成,一個(gè)進(jìn)程就是一個(gè)輕量級(jí)的虛擬機(jī),可以執(zhí)行單個(gè)的Erlang函數(shù),只能通過(guò)發(fā)送和接收消息來(lái)與其他進(jìn)程通信。也就是說(shuō),并發(fā)性是由Erlang虛擬機(jī)提供的,并操作系統(tǒng)的并發(fā)控制粒度要小很多。
在Erlang里:
1) 創(chuàng)建和銷(xiāo)毀進(jìn)程是非??斓?br />
2) 在進(jìn)程間發(fā)送消息是非??斓?br />
3) 進(jìn)程在所有操作系統(tǒng)上都具有相同的行為方式
4) 可以擁有大量的進(jìn)程
5) 進(jìn)程間不共享內(nèi)存,是完全獨(dú)立的
6) 唯一的溝通方式是消息傳遞,每個(gè)進(jìn)程都有一個(gè)郵箱與進(jìn)程同步創(chuàng)建。
動(dòng)態(tài)代碼載入是Erlang特性之一,函數(shù)調(diào)用的總是最新模塊里的最新版函數(shù),哪怕當(dāng)代碼在模塊里運(yùn)行時(shí)重新編譯了該模塊也是如此。
相關(guān)文章
Erlang分布式節(jié)點(diǎn)中的注冊(cè)進(jìn)程使用實(shí)例
這篇文章主要介紹了Erlang分布式節(jié)點(diǎn)中的注冊(cè)進(jìn)程使用實(shí)例,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-02-02Erlang語(yǔ)法學(xué)習(xí)筆記:變量、原子、元組、列表、字符串
這篇文章主要介紹了Erlang語(yǔ)法學(xué)習(xí)筆記:變量、原子、元組、列表、字符串,本文簡(jiǎn)明總結(jié)了這5種類(lèi)型的相關(guān)知識(shí),需要的朋友可以參考下2015-01-01Erlang實(shí)現(xiàn)的一個(gè)Web服務(wù)器代碼實(shí)例
這篇文章主要介紹了Erlang實(shí)現(xiàn)的一個(gè)Web服務(wù)器代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04