和朋友商討高并發的時候,又1次觸及了Erlang,Erlang出自名門愛立信,具有穩定性極高的虛擬機和平臺庫,Facebook用它實現了聊天系統,Amazon 開發了SimpleDB,最使人驚嘆的是What'sApp了,高并發的處理機制使人注視,是時候了解1下Erlang了。
世界是并行的,Erlang程序反應了我們思考和交換的方式,人作為個體通過發送消息進行交換,如果有人死亡,其他人會注意到。
Erlang里的模塊類相當于OOPL中的類,進程相當于OOPL里的對象或類實例。
并發編程可以用來提升性能,創建可擴大和容錯的系統,和編寫清晰和可理解的程序來控制現實世界里的利用。
并發程序是以1種并發編程語言編寫的程序,并發編程語言具有用于編寫并發程序的語言結構。Erlang的并發程序是由相互通訊的多組順序進程組成,1個進程就是1個輕量級的虛擬機,可以履行單個的Erlang函數,只能通過發送和接收消息來與其他進程通訊。也就是說,并發性是由Erlang虛擬機提供的,并操作系統的并發控制粒度要小很多。
在Erlang里:
1) 創建和燒毀進程是非常快的
2) 在進程間發送消息是非常快的
3) 進程在所有操作系統上都具有相同的行動方式
4) 可以具有大量的進程
5) 進程間不同享內存,是完全獨立的
6) 唯1的溝通方式是消息傳遞,每一個進程都有1個郵箱與進程同步創建。
動態代碼載入是Erlang特性之1,函數調用的總是最新模塊里的最新版函數,哪怕當代碼在模塊里運行時重新編譯了該模塊也是如此。