2016-12-02 13 views
0

Erlangが内部で受信コールを処理する方法に関する情報を探しています。Erlangコールはどのように受信されますか

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

他の機能と同じスレッドで受信を実行していますか? 各プロセスは自分自身の受信を呼び出す責任がありますか? Erlangはすべての受信を呼び出す "神"プロセスを使用しますか?

答えて

4

受信文の後、プロセスは最初にメールボックス内に受信句の1つと一致するメッセージがあるかどうかをチェックします。そうでなければ、それは待ち状態(スケジューラーとの相互作用、しかし私は詳細を持っていません)で入力します。スケジューラは、新しいメッセージがメールボックスに置かれた場合、またはタイムアウト(after句)が発生した場合にのみ、プロセスを再スケジュールします。

関連する問題