Erlang中的程序表示

2021-08-30 11:55:19 字數 697 閱讀 2568

test1() ->

pid = spawn(fun() -> receive stop -> void end end),

pid ! stop.

test2() ->

register(tut, spawn(fun() -> receive stop -> void end end),

tut ! stop.

- pid 的生成

- pid表示為, 可以通過list_to_pid("")的方式構造,其中x表示erlang集群中節點的索引號,x為0表示是本地程序,否則表示程序執行在另外的節點上。

- 傳送訊息的目的地可以是乙個local或global pid, local_registered_name, or . 通過本地註冊名字來傳送訊息時,需要乙個name->pid的對映關係。

- 通過global:register_name可以註冊全域性的名字,同理,也需要乙個name->pid的對映關係。

[quote]whereis/1[/quote]

[quote]global:whereis_name[/quote]

- 特別需要理解erlang中local and global的同和異,涉及到它是如何跨越節點邊界的機制,即分布式erlang的一些實現問題,相關模組有global, rpc, pg2, inet等。

erlang中的型別表示( spec, type)

看 erlang程式設計 第一次接觸第九章型別幾乎什麼都沒看懂,簡單就掠過去了,後來回鍋炒以及看了一些內建模組的原始碼,來有所悟。下面就是我對型別表示的一些理解。補充強調 spec和 type型別表示法,僅僅是一種說明性語法,對實際引數或返回值型別並不做限制,也就是說,它告訴 你這裡引數只有這樣填入...

關於erlang的程序池

poolboy erlang 有兩種情況需要考慮使用程序池管理erlang程序。一種是普通erlang程序,很便宜,一次可以並行很多 預設32k,當然可以調整vm引數設定更大 但是這不意味著可以無限制的使用,實際上輕鬆的達到上限是很容易的 想想發明西洋棋的那位向國王請賞的辦法,類似的,乙個程序開兩個...

erlang程序的負載均衡

從erlang r12b 版本開始,啟動 erl時系統自動檢測 cpu核心數,並啟動相同數量的 scheduler 也可以通過 erl s number 來設定,不過啟動比 cpu核數更多的排程器不會提高效能 啟動erl 時開啟或關閉 smp symmetrical multi processor ...