Shared memory and atomics S4
中文标题:共享内存与原子操作
提案概览
- 阶段: Stage 4
- 状态: 已完成
- ECMAScript 版本: ES2017
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案为 ECMAScript 添加了共享内存和原子操作,支持在 JavaScript 中进行高性能并发编程。Firefox、Chrome 和 WebKit 中提供了原型实现,但启用配置有所不同。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
ecmascript_sharedmem
这是 ECMAScript 共享内存和原子操作的规范,是提交给 Ecma TC39 的提案,目前在 ECMAScript 审批流程中处于第 4 阶段。
重要说明: 自 2017 年 2 月起,该提案已合并到 ECMAScript 规范 中。错误修复和进一步的发展将在该文档中进行,本仓库中的内容将逐渐变得无关紧要。如果您发现错误,请首先检查 ECMAScript 规范,如果错误也存在于该版本中,请在 ecma262 错误跟踪器 中提交错误,而不是在本仓库中提交。
文档和其他材料
- 格式化规范
- DOM 配套规范
- asm.js 配套规范
- 简单教程介绍
- 演示程序和其他示例
- 常见问题
- 高级设计问题、跨领域问题、安全问题等
- 向 Ecma TC39 展示的幻灯片:
实现
Firefox、Chrome 和 WebKit 已发布该提案的原型实现;它们大体上是兼容的。
- 该功能在 Firefox Nightly 中默认启用;从 Firefox 46 开始,Developer Edition、Aurora、Beta 和 Release 版本的用户可以访问
about:config并将javascript.options.shared_memory选项设置为true。 - 该功能在 Chrome 中默认关闭,但可以通过传递命令行选项
--js-flags=--harmony-sharedarraybuffer和--enable-blink-feature=SharedArrayBuffer来启用。(已知在 Chrome 48 中可用。) - 该功能在 WebKit Nightly 和 Safari Technology Preview 中默认启用,自 STP 20 起。
其他
规范的源代码位于 tc39/ 子目录中,格式化版本使用 format.sh 脚本生成。