Web Workers run JavaScript in a separate thread, keeping the main thread responsive.
// main.js
const worker = new Worker("worker.js");
worker.postMessage({ data: "process this" });
worker.onmessage = (e) => console.log(e.data);
// worker.js
onmessage = (e) => {
const result = heavyComputation(e.data);
postMessage(result);
};