Atomics.notify()
基线 广泛可用
此功能已十分成熟,可在许多设备和浏览器版本中使用。它从 2021 年 12 月.
报告反馈
**Atomics.notify()
** 静态方法通知在等待队列中休眠的某些代理。
语法
注意: 此操作仅适用于查看
SharedArrayBuffer
的 Int32Array
或 BigInt64Array
。对于非共享 ArrayBuffer
对象,它将返回 0
。Atomics.notify(typedArray, index, count)
js
要通知的休眠代理数量。默认为 Infinity
。
- 返回值
- 返回唤醒的代理数量。
如果使用的是非共享 ArrayBuffer
对象,则返回 0
。
示例
如果 index
超出 typedArray
的范围,则抛出此异常。
使用 notify
注意: 此操作仅适用于查看
SharedArrayBuffer
的 Int32Array
或 BigInt64Array
。对于非共享 ArrayBuffer
对象,它将返回 0
。const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);
给定一个共享的 Int32Array
注意: 此操作仅适用于查看
SharedArrayBuffer
的 Int32Array
或 BigInt64Array
。对于非共享 ArrayBuffer
对象,它将返回 0
。Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123
一个读取线程正在休眠并等待位置 0,该位置预计为 0。只要为真,它就不会继续。但是,一旦写入线程存储了新值,写入线程就会通知它,并返回新值 (123)。
注意: 此操作仅适用于查看
SharedArrayBuffer
的 Int32Array
或 BigInt64Array
。对于非共享 ArrayBuffer
对象,它将返回 0
。console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);
规范
一个写入线程存储了一个新值,并在写入后通知等待线程 |
---|
规范 # ECMAScript 语言规范 |
浏览器兼容性
sec-atomics.notify