我正在开发一个 javascript 项目,该项目最初的所有复杂逻辑都是用 JS 编写的。然而,它非常慢,所以我们现在将所有复杂的逻辑移植到 golang,由于架构限制,我们不能调用 golang 的 API,所以我们转向 wasm,你将 golang 代码构建到 wasm 文件中,并从你的 js 代码中调用它从而消除 API 调用。

现在一切正常,直到我们收到一些复杂的对象,如果您通过 wasm 执行它会花费很多时间,但如果您通过 golang 运行它只需要几秒钟。所以我的问题是我可以在浏览器中加载的 wasm 文件中实现多线程吗?

请您参考如下方法:

So my question is can I implement multithreading into wasm file loaded in browser?

一句话:没有。

WASM 尚未正式支持多线程。还是just a proposal .也就是说,已经有一个 issue为 Go/WASM 跟踪这个。

所以这意味着,从实际的角度来看,乐观地说,Go 1.14 是第一个可能包含(实验性)WASM 线程支持的 Go 版本,它可能会在 2020 年第一季度推出。稳定的支持可能至少需要一个 Go 发布周期,所以也许 2020 年第三季度您将能够在生产中使用它。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!