このページはコミュニティーの尽力で英語から翻訳されました。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 を返します。
In this article
構文
Atomics.notify(typedArray, index, count)引数
typedArraySharedArrayBufferのビューであるInt32ArrayまたはBigInt64Array。index起動する対象となる
typedArray中の位置。count省略可通知する休眠状態のエージェントの数。既定値は
Infinityです。
返値
覚醒したエージェントの数を返します。このtypedArray が共有されていないArrayBuffer のビューである場合は0 を返します。
例外
TypeErrorこの
typedArrayがInt32ArrayまたはBigInt64Arrayのどちらでもない場合に発生します。RangeErrorindexが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> |