Worker Threads in Node.js

From the Node.js Core Modules cheat sheet ยท Utilities & Advanced ยท verified Jul 2026

Worker Threads

Run JavaScript in parallel threads for CPU-intensive tasks

javascript
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads')

if (isMainThread) {
  // Main thread code
  const worker = new Worker(__filename, {
    workerData: { iterations: 1000000 }
  })
  
  worker.on('message', (result) => {
    console.log('Result:', result)
  })
  
  worker.on('error', (err) => {
    console.error('Worker error:', err)
  })
  
  worker.postMessage({ cmd: 'START' })
} else {
  // Worker thread code
  parentPort.on('message', (msg) => {
    if (msg.cmd === 'START') {
      // CPU-intensive task
      let result = 0
      for (let i = 0; i < workerData.iterations; i++) {
        result += Math.sqrt(i)
      }
      parentPort.postMessage(result)
    }
  })
}
๐Ÿ”ด Advanced - For CPU-intensive parallel processing
๐Ÿ’ก Workers run in separate V8 isolates
โš ๏ธ No shared memory (use SharedArrayBuffer carefully)
โšก Better than child_process for JavaScript code
๐Ÿ“Œ Not for I/O operations (use async/await instead)
๐Ÿ”— Related: cluster for network server scaling
parallelperformance

Continue with Node.js Core Modules

Save the full cheat sheet or work through every related task.

More Node.js tasks

Back to the full Node.js Core Modules cheat sheet