Navigator: hardwareConcurrency 屬性

Baseline 已廣泛支援

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2022 年 3 月起,它已在各瀏覽器中可用。

navigator.hardwareConcurrency 只讀屬性返回使用者計算機上可用於執行執行緒的邏輯處理器數量。

一個介於 1 和使用者代理可能提供的邏輯處理器數量之間的數字。

現代計算機的 CPU 通常有多個物理處理器核心(通常是兩個或四個核心),但每個物理核心通常也能透過高階排程技術一次執行多個執行緒。因此,例如,一個四核 CPU 可能提供八個邏輯處理器核心。邏輯處理器核心的數量可以用來衡量一次可以有效執行的執行緒數量,而無需進行上下文切換。

然而,瀏覽器可能選擇報告較少的邏輯核心數量,以更準確地表示一次可以執行的 Worker 的數量,因此不要將其視為使用者系統核心數量的絕對度量。

示例

在此示例中,會為瀏覽器報告的每個邏輯處理器建立一個 Worker,並建立一個記錄,其中包含對新 Worker 的引用以及一個布林值,指示我們是否已使用該 Worker;這些物件又儲存在一個數組中以供將來使用。這建立了一個 Worker 池,我們可以在以後使用它來處理請求。

js
let workerList = [];

for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
  let newWorker = {
    worker: new Worker("cpu-worker.js"),
    inUse: false,
  };
  workerList.push(newWorker);
}

規範

規範
HTML
# dom-navigator-hardwareconcurrency-dev

瀏覽器相容性

另見