4

nodejs がマルチスレッド化 されている場合は、この記事を参照してください。
スレッドは、同じコアまたはマルチコア cpu の別のコアで実行できる OS によって管理されます。この質問を参照してください。nodejs は自動的にマルチコア cpu を利用
します。node docs のこの例に示されているように、マルチコアを利用するノードのプロセス


マルチプロセスには、スレッドとは異なり、あるプロセスがリクエストに応答する別のプロセスが存在するという利点があることを知っています。各コアのプロセスを生成するだけでマルチコアを利用できるか、それともできない OS タスクであるかを知る必要があります。コントロール

4

2 に答える 2

12

場合によります。

IO 操作など、ノード自体によって非同期的に発生する作業はマルチスレッド化されます。JavaScript アプリケーションは単一のスレッドで実行されます。

私の意見では、複数のプロセスを開始する必要があるのは、大部分の作業がそのままの JavaScript で行われる場合のみです。ノードは、これがめったに起こらないという事実に基づいて設計されており、主にディスクとネットワークでブロックするアプリケーション用に構築されています。

そのため、JavaScript が作業の大部分を占めていない典型的な Node アプリケーションがある場合、複数のプロセスを起動しても、複数の CPU/コアを利用するのには役立ちません。

ただし、メイン ループで多くの作業を行う特別なアプリケーションがある場合は、複数のプロセスが適している場合があります。

知る最も簡単な方法は、アプリケーションの実行中に CPU 使用率を監視することです。アプリケーションごとに最適なものを決定する必要があります。

于 2012-08-12T06:14:55.340 に答える
3

開発者の観点からすると、ノードはマルチスレッドではありません。スレッドは、たとえば Apache のワーカー mpm で使用される方法とは非常に異なる方法で使用されます。

この答えが問題を解決すると信じています。

于 2012-08-12T08:09:42.283 に答える