天天看點

Erlang 印象

版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/44061837

和朋友切磋高并發的時候,又一次涉及了Erlang,Erlang出自名門愛立信,具有穩定性極高的虛拟機和平台庫,Facebook用它實作了聊天系統,Amazon 開發了SimpleDB,最令人驚歎的是What'sApp了,高并發的處理機制令人矚目,是時候了解一下Erlang了。

世界是并行的,Erlang程式反應了我們思考和交流的方式,人作為個體通過發送消息進行交流,如果有人死亡,其他人會注意到。

Erlang裡的子產品類相當于OOPL中的類,程序相當于OOPL裡的對象或類執行個體。

并發程式設計可以用來提升性能,建立可擴充和容錯的系統,以及編寫清晰和可了解的程式來控制現實世界裡的應用。

并發程式是以一種并發程式設計語言編寫的程式,并發程式設計語言擁有用于編寫并發程式的語言結構。Erlang的并發程式是由互相通信的多組順序程序組成,一個程序就是一個輕量級的虛拟機,可以執行單個的Erlang函數,隻能通過發送和接收消息來與其他程序通信。也就是說,并發性是由Erlang虛拟機提供的,并作業系統的并發控制粒度要小很多。

在Erlang裡:

1)  建立和銷毀程序是非常快的

2)  在程序間發送消息是非常快的

3)  程序在所有作業系統上都具有相同的行為方式

4)  可以擁有大量的程序

5)  程序間不共享記憶體,是完全獨立的

6)  唯一的溝通方式是消息傳遞,每個程序都有一個郵箱與程序同步建立。

動态代碼載入是Erlang特性之一,函數調用的總是最新子產品裡的最新版函數,哪怕當代碼在子產品裡運作時重新編譯了該子產品也是如此。

繼續閱讀