是否可以通过使用postMessage(如SharedArrayBuffer之类的2个工作程序在两个工作程序之间共享WebAssembly.memory?如果答案是肯定的,怎么办?
您可以通过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模块,从而允许在不同线程中的模块实例之间共享它。
有关更完整的示例,请参阅此博客文章: