注:
この機能は Web Worker 内で利用可能です。navigator.hardwareConcurrency
はユーザーのコンピューター上でスレッドを実行するために使用可能な論理プロセッサ数を返す読み取り専用のプロパティです。
構文
logicalProcessors = window.navigator.hardwareConcurrency
値
論理プロセッサのコア数を示すNumber
です。
現代のコンピューターはCPUに複数の物理プロセッサのコアを持っています(通常は2コアか4コア)。しかし、通常それぞれの物理コアは高度なスケジューリング技術を用いて一度に複数スレッドを実行することができます。 したがって、例えば4コアのCPUは8個の論理プロセッサコアを提供することができます。論理プロセッサのコア数は、コンテキストスイッチを必要とせずに一度に効果的に実行できるスレッドの数を測定するために使用できます。
しかしながら、ブラウザはより少ない論理コア数を報告することを選択することで、一度に実行できるWorker
の数をより正確に表すことがあります。したがって、この数値をユーザーのシステムのコア数の絶対的な測定値として扱わないようにしてください。
例
この例では、ブラウザが報告した論理プロセッサごとにWorker
が1つ作られ、新しいWorkerへの参照と、そのWorkerをまだ使用しているかどうかを示すBooleanの値を含むレコードを作っています。これらのオブジェクトは後で使用するために配列に順々に格納されています。後でリクエストを処理するために使うWorkerのプールを作っています。
let workerList = [];
for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
let newWorker = {
worker: new Worker('cpuworker.js'),
inUse: false
};
workerList.push(newWorker);
}
仕様
Specification | Status | Comment |
---|---|---|
HTML Living Standard navigator.hardwareConcurrency の定義 |
現行の標準 | Initial definition. |
ブラウザでの実装状況
BCD tables only load in the browser