Navigator:hardwareConcurrency 属性

navigator.hardwareConcurrency 只读属性返回用户计算机上可用于运行线程的逻辑处理器数量。

1 到用户代理可能可用的逻辑处理器数量之间的数字。

现代计算机在其 CPU 中有多个物理处理器核心(通常是两个或四个核心),但每个物理核心通常也能够使用高级调度技术同时运行多个线程。因此,例如,一个四核 CPU 可能提供八个**逻辑处理器核心**。逻辑处理器核心的数量可以用来衡量在不进行上下文切换的情况下可以有效地同时运行的线程数量。

但是,浏览器可能会选择报告较少的逻辑核心数量,以便更准确地表示可以同时运行的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);
}

规范

规范
HTML 标准
# dom-navigator-hardwareconcurrency-dev

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅