登录
首页 >  Golang >  Go问答

在两个 Web Worker 中共享相同的 WebAssembly 实例

来源:stackoverflow

时间:2024-03-06 09:57:27 346浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《在两个 Web Worker 中共享相同的 WebAssembly 实例》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我使用从golang(版本1.3.5)编译的wasm文件,我有某些使用goroutines的函数,但是它们不受支持,当我调用它们时,它们在当前线程中运行,并且降低了我的worker的速度相当大。

所以我想在当前的工作线程中创建一个工作线程,并让它调用有问题的函数,以便它是多线程的。

我正在使用 webpack worker-loader 来创建我当前的 Web Worker。

是否可以在两个 Web Worker 之间共享 WebAssembly 实例?


解决方案


您当前无法在工作线程之间共享 WebAssembly 实例。但是,您可以在两个工作线程上实例化相同的模块,并通过 SharedArrayBuffer 共享内存。事实上,这就是 emscripten 实现 pthreads 的方式。

这仅适用于启用 SharedArrayBuffers 并实现 WebAssembly 线程提案的浏览器。

理论要掌握,实操不能落!以上关于《在两个 Web Worker 中共享相同的 WebAssembly 实例》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>