High-Concurrency Systems & Microservices
22 mins read
Free Lesson
Offload CPU-bound computations (image processing, crypto) to worker threads without freezing the I/O event loop.
Worker Threads for Heavy Computation
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads');
if (isMainThread) {
module.exports = function runHeavyTask(data) {
return new Promise((resolve, reject) => {
const worker = new Worker(__filename, { workerData: data });
worker.on('message', resolve);
worker.on('error', reject);
});
};
} else {
// CPU-intensive calculation on separate OS thread
let result = 0;
for (let i = 0; i < workerData.limit; i++) result += Math.sqrt(i);
parentPort.postMessage(result);
}