2016-03-30 27 views
4

我想配置出什麼是組長,以及它如何與I/O模塊相關,但是在互聯網中找不到任何有用的東西。可以請別人解釋我嗎?什麼是組長

我有以下從靈藥1.2書(戴夫·托馬斯)場景:
enter image description here

在第二個窗口,爲什麼他通過:erlang_group_leader?對於它的好處是什麼?

回答

6

From documentation

group_leader() -> pid() 

返回過程評估函數組長的進程標識符。

每個進程都是某個進程組的成員,所有組都有一個組長。組中的所有I/O都被傳送給組長。當一個新的過程產生時,它會得到與產卵過程相同的組長。最初,在系統啓動時,init既是自己的組長,又是所有進程的組長。

和:

group_leader(GroupLeader, Pid) -> true 

類型:

GroupLeader = Pid = pid() 

設置的PID組組長GroupLeader。通常情況下,當從某個shell啓動的進程具有另一個組頭以外的組時,將使用此選項。

See also group_leader/0. 

也有一些Elixir-specific documentation

通過建模與進程IO設備,二郎山VM允許同一網絡中的不同節點,以便在讀/寫文件交換文件的過程節點之間。在所有IO設備中,有一個對每個過程都是特殊的:組長。

組長可以配置每個進程,並在不同情況下使用。例如,在遠程終端中執行代碼時,它將保證遠程節點中的消息被重定向並打印在觸發請求的終端中。

+0

首先,感謝您的回覆。我不明白的是,組長的主要任務是什麼? –

+1

組長的主要任務是收集組中所有進程的I/O輸出,並將該I/O傳遞到底層系統或從底層系統傳遞該I/O。基本上,小組負責人代表小組擁有標準輸入,stdout和stderr,並處理來往這些頻道的傳遞信息。 –

+1

將組長視爲代理,其他進程通過這些代理進行IO。因此,他們不是與一羣開發人員都與會計部門交談,而是指定一個與他們交談的小組負責人(以清理上次會議的開支),他們可以繼續竊取他們的代碼。 – Amiramix