--- title: navigator.hardwareConcurrency slug: orphaned/Web/API/NavigatorConcurrentHardware/hardwareConcurrency translation_of: Web/API/NavigatorConcurrentHardware/hardwareConcurrency original_slug: Web/API/NavigatorConcurrentHardware/hardwareConcurrency ---
{{APIRef("HTML DOM")}}
{{AvailableInWorkers}}
navigator.hardwareConcurrency
はユーザーのコンピューター上でスレッドを実行するために使用可能な論理プロセッサ数を返す読み取り専用のプロパティです。
logicalProcessors = window.navigator.hardwareConcurrency
論理プロセッサのコア数を示す{{jsxref("Number")}}です。
現代のコンピューターはCPUに複数の物理プロセッサのコアを持っています(通常は2コアか4コア)。しかし、通常それぞれの物理コアは高度なスケジューリング技術を用いて一度に複数スレッドを実行することができます。 したがって、例えば4コアのCPUは8個の論理プロセッサコアを提供することができます。論理プロセッサのコア数は、コンテキストスイッチを必要とせずに一度に効果的に実行できるスレッドの数を測定するために使用できます。
しかしながら、ブラウザはより少ない論理コア数を報告することを選択することで、一度に実行できる{{domxref("Worker")}}の数をより正確に表すことがあります。したがって、この数値をユーザーのシステムのコア数の絶対的な測定値として扱わないようにしてください。
この例では、ブラウザが報告した論理プロセッサごとに{{domxref("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 |
---|---|---|
{{SpecName('HTML WHATWG', '#dom-navigator-hardwareconcurrency', 'navigator.hardwareConcurrency')}} | {{Spec2('HTML WHATWG')}} | Initial definition. |
{{Compat("api.NavigatorConcurrentHardware.hardwareConcurrency")}}