2013-05-24 5 views
5

は、erlangランタイムで内部でメッセージを受信して​​いますか?Erlang受信メッセージ - 内部ではどのように処理されていますか?

プロセスがメッセージを待っているときに、実行は受信時にハングします。 受信はブロックIOまたは非同期IOを介して行われますか?

前者の場合は、OSスレッドがブロックされていることを意味し、受信時にプロセスがハングアップすると、スレッドのコンテキスト切り替えのためにパフォーマンスが悪くなり、オペレーティングシステムのスレッド制限に達する可能性があります。

答えて

5

Erlangプロセスは、OSスレッドまたはプロセスに対応していません。それらはErlang VMの内部構造として実装され、Erlang VMによってスケジュールされます。デフォルトでErlang VMによって起動されるOSスレッドの数は、CPUの数に等しい。 Erlangプロセスがメッセージを待っているとき、OSプロセスやスレッドはブロックされません。

+0

説明ありがとう –

関連する問題