CARVIEW |
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Atomics.notify()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2021年12月.
Atomics.notify()
は静的メソッドで、待ち行列で休眠状態にあるエージェントに通知します。
メモ:
この操作は SharedArrayBuffer
のビューである Int32Array
または BigInt64Array
に対してのみ動作します。
共有されていない ArrayBuffer
オブジェクトでは 0
を返します。
構文
Atomics.notify(typedArray, index, count)
引数
typedArray
-
SharedArrayBuffer
のビューであるInt32Array
またはBigInt64Array
。 index
-
起動する対象となる
typedArray
中の位置。 count
省略可-
通知する休眠状態のエージェントの数。既定値は
Infinity
です。
返値
覚醒したエージェントの数を返します。この typedArray
が共有されていない ArrayBuffer
のビューである場合は 0
を返します。
例外
TypeError
-
この
typedArray
がInt32Array
またはBigInt64Array
のどちらでもない場合に発生します。 RangeError
-
index
がtypedArray
の範囲を超えている場合に発生します。
例
>notify
の使用
共有された Int32Array
を用意します。
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);
指定された value
が指定された index
に格納されている値と一致するため、読み取りスレッドは位置 0 で休眠状態で待機しています。
書き込みスレッドが、指定された typedArray
の位置 0 で Atomics.notify()
を呼び出すまで、読み取りスレッドは移動しません。
覚醒した後、位置 0 の値が書き込みスレッドによって変更されていない場合、読み取りスレッドは休眠状態に戻らず、処理を続行することに注意してください。
Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123
書き手のスレッドは新しい値を格納し、待機中のスレッドに通知を行います。
console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-atomics.notify> |
ブラウザーの互換性
Loading…