概述Workers 提供线程化执行环境,适合 CPU 密集任务与 I/O 协调。通过 `postMessage` 传递数据,可使用 Transferable 零拷贝传输(如 `ArrayBuffer`)。用法/示例// main.js const w = new Worker('/w.js', { type: 'module' }) const buf = new ArrayBuffer(1024) w.postMessage({ buf }, [buf]) w.onmessage = e => { const { result } = e.data } // w.js self.onmessage = e => { const { buf } = e.data const view = new Uint8Array(buf) let s = 0; for (let i = 0; i < view.length; i++) s += view[i] self.postMessage({ result: s }) } 工程建议优先使用 Transferable 传大数据;避免频繁消息导致主线程与 Worker 都受压。管理 Worker 生命周期与错误,使用超时与终止;对不可序列化对象使用替代方案。对多 Worker 任务采用队列与负载均衡,避免资源争用。参考与验证MDN:Web Workers — https://developer.mozilla.org/docs/Web/API/Web_Workers_APIHTML:Structured clone — https://html.spec.whatwg.org/multipage/structured-data.html#structuredserialize

发表评论 取消回复