📅  最后修改于: 2023-12-03 14:42:23.818000             🧑  作者: Mango
在多线程并发模式下,JavaScript Atomics 对象为 JavaScript 提供了原子操作的能力。其中,Atomics.sub() 方法可用于对指定位置的 SharedArrayBuffer 值进行原子减操作。
Atomics.sub(typedArray, index, value);
typedArray
:被操作的 SharedArrayBuffer 数组。index
:需要执行原子减操作的元素位置。value
:需要被减去的值。返回原子减后的结果值。
typedArray
的类型必须为 Int32Array
、Uint32Array
、Int16Array
、Uint16Array
、Int8Array
、Uint8Array
或 Uint8ClampedArray
之一。index
必须是一个有效的索引值,且不能超出数组的范围。value
不能超过 typedArray[index]
的值,否则将无效。const buffer = new SharedArrayBuffer(8);
const array = new Int32Array(buffer);
array[0] = 5;
console.log(`原子减前:${array[0]}`); // 原子减前:5
Atomics.sub(array, 0, 2);
console.log(`原子减后:${array[0]}`); // 原子减后:3