Один и тот же экземпляр WebAssembly в двух веб-рабочих - PullRequest
0 голосов
/ 11 февраля 2020

Я использую файл wasm, скомпилированный из golang (версия 1.3.5), у меня есть определенные функции, которые используют goroutines, однако они не поддерживаются, и когда я их вызываю, они запускаются в текущем потоке и замедляются мой работник значительно.

Поэтому я хотел бы создать работника внутри моего текущего работника и заставить его вызывать соответствующую функцию, чтобы он был многопоточным.

Я использую работника webpack -loader для создания моего текущего веб-работника.

Возможно ли разделить экземпляр WebAssembly между двумя веб-работниками?

1 Ответ

1 голос
/ 11 февраля 2020

В настоящее время вы не можете делиться экземплярами WebAssembly между работниками. Однако вы можете создать один и тот же модуль на обоих рабочих местах и ​​совместно использовать память через SharedArrayBuffer. Действительно, именно так emscripten реализует pthreads.

Это будет работать только в браузерах, которые включают SharedArrayBuffers и реализуют предложение потоков WebAssembly.

...