2016-12-02 52 views
0

我在尋找關於Erlang如何處理接收電話的信息。Erlang如何接收電話

report(Count) -> 
    receive 
     X -> io:format("Received #~p: ~p~n", [Count, X]), 
    end. 

接收是否在相同的線程上執行比其他函數? 每個進程是否有責任調用他自己的接收? Erlang是否使用調用所有接收的「神」進程?

回答

4

收到語句後,進程首先檢查郵箱中是否存在與其中一個接收子句相匹配的郵件。如果沒有,它進入等待狀態(與調度程序交互,但我沒有詳細信息)。然後,只有在郵件箱中放入新郵件或發生超時(後續子句)時,計劃程序纔會重新計劃進程。