yanni's answer shows how to send (transfer ownership) one buffer to a web worker: Using transferable objects from a Web Worker
How would I send multiple buffers (in an array) to a web worker (without copying)?
yanni's answer shows how to send (transfer ownership) one buffer to a web worker: Using transferable objects from a Web Worker
How would I send multiple buffers (in an array) to a web worker (without copying)?
Worker#postMessage
接受一组可转移对象,
var worker = new Worker("...");
var buffers = [new ArrayBuffer, new ArrayBuffer, new ArrayBuffer];
var message = {buffers: buffers};
worker.postMessage(message, buffers);
这是一个示例小提琴,http://jsfiddle.net/g247v/
这已经在其他地方得到了回答,但是在我最终在这里找到答案之前,谷歌首先把我带到了这里。
您可以将多个缓冲区传递给网络工作者,而无需使用Transferable 对象执行复制:
工人案例,第一个参数是数据,第二个是应该转移的项目列表。顺便说一下,第一个参数不一定是 ArrayBuffer。例如,它可以是 JSON 对象:
worker.postMessage(
{data: int8View, moreData: anotherBuffer},
[int8View.buffer, anotherBuffer]
);