--- title: Atomics.notify() slug: Web/JavaScript/Reference/Global_Objects/Atomics/notify tags: - Atomics - JavaScript - メソッド - 共有メモリー translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/notify original_slug: Web/JavaScript/Reference/Global_Objects/Atomics/wake --- {{JSRef}} 静的メソッドである Atomics.notify() は、待ち行列で休眠状態にあるいくつかのエージェントに通知します。

注: この操作は共有された {{jsxref("Int32Array")}} に対してのみ許可されています。
共有されていない ArrayBuffer オブジェクトでは 0 を返します。

構文

Atomics.notify(typedArray, index, count)

引数

- typedArray
共有された {{jsxref("Int32Array")}}。
- index
起動する対象となる typedArray 中の位置。
- count
起動するエージェントの数。既定値は {{jsxref("Infinity", "+Infinity")}} です。

返値

- 起動したエージェントの数を返します。
  • 共有されていない {{jsxref("ArrayBuffer")}} オブジェクトが使用された場合は、 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")}}

    関連情報

    - {{jsxref("Atomics")}} - {{jsxref("Atomics.wait()")}}