Atomics.compareExchange()

简介: Atomics.compareExchange()

MDN文档

注意: 这是一个实验中的功能


Atomics.compareExchange() 静态方法会在数组的值与期望值相等的时候,将给定的替换值替换掉数组上的值,然后返回旧值。此原子操作保证在写上修改的值之前不会发生其他写操作。


语法

Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)点击复制复制失败已复制


参数:

  • typedArray
    一个共享的整型 typed array 。例如 Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32Array ,或者 Uint32Array
  • index
    按位与操作的 typedArray 的值在数组上的索引
  • expectedValue
    用于比较的值
  • replacementValue
    将要替换上的值


返回值:

给定位置的旧值typedArray[index] )。


错误:

  • 假如 typedArray 不是允许的整型之一,则抛出 TypeError
  • 假如 typedArray 不是一个shared typed array类型,则抛出 TypeError
  • 如果 index 超出了 typedArray 的边界,则抛出 RangeError


示例

const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 7;
const old = Atomics.compareExchange(ta, 0, 7, 12);
console.log(old) // 7
const now = Atomics.load(ta, 0);
console.log(now) // 12
目录
相关文章
|
存储 SQL Go
数据库:存储过程实验
一、实验目的及要求 目的 掌握存储过程的编写与调用 要求 掌握存储过程的编写;掌握存储过程的调用
150 0
|
搜索推荐 Android开发 iOS开发
探索安卓与iOS系统的用户界面设计哲学
现代移动操作系统的设计哲学不仅仅是技术的表现,更是用户体验与功能实现的结合。本文将深入分析安卓与iOS两大主流系统在用户界面设计方面的差异与共通之处,探讨它们背后的思维模式及其对用户体验的影响。 【7月更文挑战第11天】
283 3
|
12月前
|
JavaScript 前端开发
layui下拉框xm-select自定义搜索使用方法
【10月更文挑战第28天】`xm - select` 是基于 Layui 的下拉框增强插件,支持自定义搜索功能。实现步骤包括:1. 引入 Layui 和 xm - select 的核心文件;2. 创建下拉框的基本 HTML 结构;3. 使用 `layui.use` 函数初始化插件并配置搜索功能;4. 可选地进行高级自定义搜索优化,如模糊匹配、多字段搜索和实时更新数据。通过这些步骤,可实现灵活的下拉框搜索功能。
2495 1
|
12月前
|
存储 缓存 JavaScript
|
SQL 前端开发 Java
基于SSM框架的教务系统
基于SSM框架的教务系统
130 2
基于SSM框架的教务系统
|
JavaScript 索引
Atomics.wait()
Atomics.wait()
333 0
Atomics.load()
Atomics.load()
202 1
|
存储 缓存 网络协议
Docker容器间网络互联原理,讲不明白算我输
一、今天我们要搞明白的实验 同一个宿主机上的不同容器之间的网络如何互通的??? 二、前置网络知识
Docker容器间网络互联原理,讲不明白算我输
|
人工智能 弹性计算 自动驾驶
阿里云张新涛:连接产业上下游,构建XR协作生态
用交互技术辅以澎湃的算力带给大家最真实的“沉浸式体验”
阿里云张新涛:连接产业上下游,构建XR协作生态