【发布时间】:2020-01-20 07:33:47
【问题描述】:
是否可以使用 postMessage 在 2 个工作人员之间共享 WebAssembly.memory,比如 SharedArrayBuffer?如果答案是肯定的,怎么做?
【问题讨论】:
标签: javascript shared-memory web-worker webassembly
是否可以使用 postMessage 在 2 个工作人员之间共享 WebAssembly.memory,比如 SharedArrayBuffer?如果答案是肯定的,怎么做?
【问题讨论】:
标签: javascript shared-memory web-worker webassembly
您可以通过 JavaScript API 创建 WebAssembly 共享内存实例:
const memory = new WebAssembly.Memory({
initial: 80,
maximum: 80,
shared: true
});
然后您可以通过postMessage 将此内存实例发送给 Web Worker:
const worker = new Worker("worker.js");
worker.postMessage({ memory });
文件worker.js 然后可以使用这个共享内存实例创建一个 WebAssembly 模块,允许它在不同线程中的模块实例之间共享。
有关更完整的示例,请参阅此博客文章:
【讨论】: