5

受信メッセージは erlang ランタイムで内部的にどのように実装されていますか?

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

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

4

1 に答える 1

5

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

于 2013-05-24T03:33:59.800 に答える