MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-survey

navigator.hardwareConcurrency

Note: This feature is available in Web Workers.

The navigator.hardwareConcurrency read-only property returns the number of logical processors available to run threads on the user's computer.

Syntax

logicalProcessors = window.navigator.hardwareConcurrency

Value

A Number indicating the number of logical processor cores.

Modern computers have multiple physical processor cores in their CPU (two or four cores is typical), but each physical core is also usually able to run more than one thread at a time using advanced scheduling techniques. So a four-core CPU may offer eight logical processor cores, for example. The number of logical processor cores can be used to measure the number of threads which can effectively be run at once without them having to context switch.

The browser may, however, choose to report a lower number of logical cores in order to represent more accurately the number of Workers that can run at once, so don't treat this as an absolute measurement of the number of cores in the user's system.

Examples

In this example, one Worker is created for each logical processor reported by the browser and a record is created which includes a reference to the new worker as well as a Boolean value indicating whether or not we're using that worker yet; these objects are, in turn, stored into an array for later use. This creates a pool of workers we can use to process requests later.

let workerList = [];

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

Specification

Specification Status Comment
HTML Living Standard
The definition of 'NavigatorConcurrentHardware' in that specification.
Living Standard Initial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 37 (Yes) 48 (48) No support 24 ?
Available on Workers (Yes) (Yes) (Yes) No support (Yes) ?
Feature Android Webview Chrome for Android Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Basic support 37 37 (Yes) 48.0 (48) (Yes) ? 24 ?
Available on Workers (Yes) (Yes) (Yes) (Yes) (Yes) ? (Yes) ?

See also

Document Tags and Contributors

 Contributors to this page: jaffathecake, scriptguru, Sephr, jpmedley, libbymc, nmve, Sheepy, aschr, Sheppy
 Last updated by: jaffathecake,