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

More Node.js tasks

Back to the full Node.js Core Modules cheat sheet