SharedArrayBuffer

简介: SharedArrayBuffer

MDN 文档

简单解释: SharedArrayBuffer 对象用来表示一个通用的,固定长度的原始二进制数据缓冲区,类似于 ArrayBuffer 对象,它们都可以用来在共享内存(shared memory)上创建视图。与 ArrayBuffer 不同的是,SharedArrayBuffer 不能被分离。


注意

作为对Spectre的响应,所有主流浏览器均默认于2018年1月5日禁用SharedArrayBufferChrome 在启用了网站隔离功能的平台上的v67中重新启用了该功能,以防止出现 Spectre 风格的漏洞。


示例

const buffer = new SharedArrayBuffer(8);
console.log(buffer.byteLength); // 8


语法

new SharedArrayBuffer(length)


参数

  • length

所创建的数组缓冲区的大小,以字节(byte)为单位。


返回值

一个大小指定的新 SharedArrayBuffer 对象。其内容被初始化为 0。


作用

分配及共享内存

为了将一个 SharedArrayBuffer 对象从一个用户代理共享到另一个用户代理(另一个页面的主进程或者当前页面的一个 worker )从而实现共享内存,我们需要运用 postMessage结构化克隆算法structured cloning )。


结构化克隆算法接收被映射到一个新的 SharedArrayBuffers 对象上的 SharedArrayBuffers 对象与 TypedArrays 对象。在这两种映射下,这个新的 SharedArrayBuffer 对象会被传递到目标用户代理的接收函数上,导致在目标用户代理产生了一个新的私有 SharedArrayBuffer 对象(正如 ArrayBuffer 一样)。然而,这两个 SharedArrayBuffer 对象指向的共享数据块其实是同一个,并且在某一代理中的一个块的副作用将最终导致另一个代理具有可见性。

目录
相关文章
|
5月前
|
网络协议 关系型数据库 Linux
Linux系统中如何开启和配置OpenGauss数据库的远程连接
openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性.
|
编解码 API 数据安全/隐私保护
FFmpeg中overlay滤镜用法-水印及画中画
overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛,常见的例子有,电视屏幕右上角显示的电视台台标,以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口,两个窗口不同的视频内容同时播放。
1989 0
FFmpeg中overlay滤镜用法-水印及画中画
|
5月前
|
Linux Shell C语言
如何在 Linux 中查找父进程 ID (PPID)?
【5月更文挑战第4天】
578 4
如何在 Linux 中查找父进程 ID (PPID)?
|
5月前
|
前端开发
使用ffmpeg-core的时候报错,解决Uncaught (in promise) ReferenceError: SharedArrayBuffer is not defined
使用ffmpeg-core的时候报错,解决Uncaught (in promise) ReferenceError: SharedArrayBuffer is not defined
|
5月前
|
Linux
报错 Package ‘oniguruma‘, required by ‘virtual:world‘, not found
报错 Package ‘oniguruma‘, required by ‘virtual:world‘, not found
270 0
|
安全 JavaScript 前端开发
在浏览器中使用 FFmpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。随着浏览器能力的不断发展,我们可以通过 WebAssembly 在浏览器运行各种语言的程序,这其中就包括了使用 c++ 写的 FFmpeg。
576 0
在浏览器中使用 FFmpeg
|
JavaScript 前端开发
低代码必备!带标尺和缩略图的画板
低代码平台经常要用到标尺和缩略图操作同步的画板,点进来就能定制你的专属低代码画板!还等什么!快看我!
|
存储 缓存 资源调度
pnpm技术体系之:高性能包管理工具
pnpm 是 performant npm(高性能的 npm),它是一款快速的,节省磁盘空间的包管理工具,同时,它也较好地支持了 workspace 和 monorepos。
pnpm技术体系之:高性能包管理工具
|
JSON 小程序 JavaScript
微信小程序|实现文件上传
微信小程序|实现文件上传
1131 0