私は、erlangベースのシステムを研究しており、システムで起こるイベントのシーケンスを分析しようとしています。 "spawn"が呼び出されるたびに、erlangランタイムまたはelang VMに新しいカーネルスレッドを作成させる方法がありますか?これにより、システムが遅くなりますが、研究がずっと楽になります。 + Sフラグを試して、すでにsmpを有効にしましたが、システムが複数のプロセスを1つのカーネルスレッドまたはerlangスケジューラにマッピングしていると思われます。入力/設定パラメータがありますか?Erlang - 新しい "erlang process"を新しいカーネルスレッドにマップする
答えて
いいえ、Erlang VMの仕組みではありません。 BEAMはコアごとにスレッドを生成し、そこでスケジューラを実行します。各Erlangプロセスは任意のスケジューラ上で実行でき、スケジューラからスケジューラに移行することもできます。スケジューラはあるスレッドから別のスレッドに移行します。デフォルトでは、これらのスケジューラはCPUコアにバインドされていないため、コアからコアに移行することもできます。 -sbt
スイッチを使用してバインドすることができます。 Erlangプロセスを特定のスケジューラにバインドすることもできます。これは文書化されておらず、推奨されていません。 Erlangからスレッドを生成することはできませんが、NIFまたはポートからスレッドを生成することはできませんが、このスレッドでErlangプロセスを実行することはできません。
Erlangはカーネルスレッドを動的に作成できないのですか?ランタイムが開始されたときにのみ作成されますか? + 100:100の引数を渡すと、スケジューラ用の100個のカーネルスレッドが作成され、すべてのユーザスレッドがErlangスケジューラロジックによってこれらの100個のカーネルスレッドにシャッフルされます。 – mac93
@ mac93はい、VM起動時に作成されます。ユーザスレッドは存在しません。スケジューラ間でシャッフルされたErlangプロセスがあり、それらはすべて独自のカーネルスレッドを持っています。 IO操作(IOバインドされたダーティNIF)にのみ使用されるIOスレッドもあり、CPUバインドダーティNIFに使用される実験的なダーティスレッドがあります。 –
- 1. ErlangのFreeBSDポートを新しいマイナーバージョンに更新する
- 2. Erlang Wx:新しいウィジェットを追加するには
- 3. Erlangの新機能をプログラミングして計算する
- 4. Erlang SMPPクライアントを探しています
- 5. リストの先頭に追加しないで、erlangに新しいリストを作成しますか?
- 6. erlang spawn_monitorの正しい使い方
- 7. Erlangについてhttpプロキシ
- 8. esl-erlang、erlang-crypto、およびerlang-toolsのインストール方法は?
- 9. Erlang:新しいプロセスを起動するのはいつ論理的ですか?そうでないときは?
- 10. Erlangシェル内でErlangアプリケーションを実行するには
- 11. Erlangデバッガが動作しない
- 12. Erlangリモートシェルが動作しない
- 13. Emacs erlang buffer
- 14. ? Erlangで
- 15. Erlang、Erlangのインターネットでノードを接続する
- 16. Erlangシリアライゼーションライブラリ
- 17. のerlang
- 18. Erlangに関する質問
- 19. ErlangのActiveRecord
- 20. バックグラウンドで動作しているErlangアプリケーションコンソールを見るには?
- 21. Elixir/ErlangのYeccパーサーでマップする項目を追加する
- 22. Erlang TupleをJSONとしてエンコードする
- 23. Erlangシェルに長いリストを表示
- 24. バックエンドプロセスとしてのErlang
- 25. Erlangでマップとパターンマッチングしたときの不正な表現
- 26. PIDによるErlangのプロセスの殺し
- 27. Erlang "ホストキー検証"エラー
- 28. Erlang 17 HTTP SOAPサービス
- 29. Erlang Digraphsの状態
- 30. Erlang:リスト内にタプルのリストを作成しています:foreach
Erlangの「プロセス」は、オブジェクトが順次OOP言語でインスタンス化されるのとほぼ同じ規則性で生成されます。完璧な並行ではありませんが、そのようなことを考えるのが良いです。 [私はこれについて、ここにSOの記事を書いた](http://stackoverflow.com/questions/32294367/erlang-process-vs-java-thread)。パラダイムの違いは、多くの通常のプログラミング知識と知識を残すことです。 – zxq9