Cluster — multiple processes. worker_threads — multiple threads.
Cluster:
1const cluster = require("cluster");2const http = require("http");34if (cluster.isMaster) {5 // Master process6 for (let i = 0; i < 4; i++) {7 cluster.fork();8 }9} else {10 // Worker process11 http.createServer((req, res) => {12 res.end("Hello");13 }).listen(3000);14}
worker_threads:
1const { Worker, isMainThread, parentPort } = require("worker_threads");23if (isMainThread) {4 const worker = new Worker(__filename);5 worker.on("message", (msg) => console.log(msg));6} else {7 parentPort.postMessage("Hello from worker");8}
Key differences: