积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《如何在使用golang创建的wasm中实现多线程?》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
问题内容我正在开发一个 javascript 项目,该项目最初所有复杂的逻辑都是用 JS 编写的。然而它非常慢,所以我们现在将所有复杂的逻辑移植到 golang,由于架构限制,我们无法调用 golang 的 API,因此我们转向 wasm,将 golang 代码构建到 wasm 文件中并从 js 代码调用它从而消除 API 调用。
现在一切都工作正常,直到我们收到一些复杂的对象,如果通过 wasm 执行它会花费很多时间,但如果通过 golang 运行它只需要几秒钟。所以我的问题是我可以在浏览器中加载的 wasm 文件中实现多线程吗?
解决方案
一句话:不。
WASM 尚未正式支持多线程。它仍然是 just a proposal。也就是说,已经有一个 issue 在 Go/WASM 中跟踪它。
因此,实际上,乐观地讲,Go 1.14 是第一个可能包含(实验性)WASM 线程支持的 Go 版本,该版本可能会在 2020 年第一季度发布。稳定的支持可能至少还需要一个 Go 发布周期,所以也许到 2020 年第三季度您就可以在生产中使用它了。
本篇关于《如何在使用golang创建的wasm中实现多线程?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!