📅  最后修改于: 2023-12-03 15:01:40.342000             🧑  作者: Mango
在多线程环境下,JavaScript 为我们提供了 Atomics 对象来执行原子操作。其中的 Atomics.store() 方法可以原子性的将一个值存储到一个 SharedArrayBuffer 中的指定位置。
Atomics.store(typedArray, index, value);
参数解释:
typedArray
: 必选参数。指定要存储值的容器。只能传入 SharedArrayBuffer 对象。index
: 必选参数。指定要存储值的位置。value
: 必选参数。指定要存储的值。注意: Atomics.store()
方法的 typedArray
参数必须是共享类型数组中的 Int8Array
, Uint8Array
, Int16Array
, Uint16Array
, Int32Array
, or Uint32Array
。 否则会抛出 TypeError
异常。
返回存储之前在指定位置上的值。
const buffer = new SharedArrayBuffer(4);
const view = new Int32Array(buffer);
Atomics.store(view, 0, 42);
console.log(Atomics.load(view, 0)); // expected output: 42
在上面的示例中,我们首先创建了一个长度为 4 的 SharedArrayBuffer,然后创建了一个 Int32Array 视图用于操作数据。接着,我们将值 42 存储在第 0 个位置上,并使用 Atomics.load() 方法来检查该位置上的值。
Atomics.store()
方法的执行是原子性的,不会中断。