Navigator:hardwareConcurrency 属性

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.

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("cpuworker.js"),
    inUse: false,
  };
  workerList.push(newWorker);
}

规范

Specification
HTML
# dom-navigator-hardwareconcurrency-dev

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
hardwareConcurrency

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.
Has more compatibility info.

参见