Web Worker
Browser API for running JavaScript in a background thread, separate from the main thread. Prevents heavy computation (image processing, parsing) from blocking the UI.
Three types: Dedicated Worker (1 page → 1 worker), Shared Worker (multiple tabs/iframes share), Service Worker (outside pages, runs in the background, handles fetch + push). Communication via postMessage (structured cloning). SharedArrayBuffer + Atomics allow shared memory (require COOP/COEP headers after Spectre). Comlink (Google) abstracts postMessage into proxies. Modern use cases: AI inference in browser (Transformers.js, ONNX Runtime Web), heavy WebAssembly compute.