--- title: Atomics.notify() slug: Web/JavaScript/Reference/Global_Objects/Atomics/notify tags: - Atomics - JavaScript - Method - Shared Memory translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/notify original_slug: Web/JavaScript/Reference/Global_Objects/Atomics/wake ---
静的メソッドである Atomics
.notify()
は、待ち行列で休眠状態にあるいくつかのエージェントに通知します。
注: この操作は共有された {{jsxref("Int32Array")}} に対してのみ許可されています。
共有されていない ArrayBuffer
オブジェクトでは 0
を返します。
Atomics.notify(typedArray, index, count)
typedArray
index
typedArray
中の位置。count
0
を返します。typedArray
が {{jsxref("Int32Array")}} でない場合、{{jsxref("TypeError")}} が送出される。index
が typedArray
の範囲を超えている場合 {{jsxref("RangeError")}} が送出される。notify
の使用共有された Int32Array
を用意します:
const sab = new SharedArrayBuffer(1024); const int32 = new Int32Array(sab);
読み手のスレッドは、0 番目の値が 0 であることを期待してスリープします。それが満たされている間は処理が進みません。しかし、書き手のスレッドが新しい値をストアした場合、読み手のスレッドは読み手のスレッドによって起こされ、新しい値 (123) を取得します。
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);
仕様書 |
---|
{{SpecName('ESDraft', '#sec-atomics.notify', 'Atomics.notify')}} |
{{Compat("javascript.builtins.Atomics.notify")}}