Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Atomics::Atomics.store静的メソッドの使い方

Atomics.store()静的メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Atomics.store()メソッドは、共有メモリ(SharedArrayBuffer)上に構築された型付き配列の特定のインデックスに、指定された値をアトミックに(不可分に)格納するメソッドです。これはJavaScriptのGlobal_Objectsに属するAtomicsオブジェクトの静的メソッドであり、主に複数のスレッドが同じメモリ領域にアクセスする並行処理環境において、データ競合を防ぎながら安全に値を書き込むために使用されます。

このメソッドは、引数として、共有メモリをバッキングストアとするInt32ArrayやUint8ArrayなどのtypedArray、値を格納したい位置を示すindex、そして実際に格納するvalueを受け取ります。指定されたindex位置にあるtypedArrayの要素は、他のスレッドからの読み取りや書き込み操作と干渉することなく、新しいvalueで安全に更新されます。これにより、複数のスレッドが同時に同じメモリ位置にアクセスしようとした際に発生する可能性のある、予測不可能な結果やデータの破損を効果的に防止することができます。

Atomics.store()は、マルチスレッドプログラミングにおいてデータの一貫性と信頼性を保証するために不可欠な操作であり、特にWeb Workersなどを用いた並行処理で共有状態を安全に管理する上で重要な役割を果たします。処理が成功した場合、格納されたvalueが戻り値として返されます。共有メモリを利用したアプリケーション開発において、データの整合性を保つための基本的なツールとして活用されます。

公式リファレンス: Atomics.store()

構文(syntax)

1const sab = new SharedArrayBuffer(1024);
2const int32 = new Int32Array(sab);
3
4Atomics.store(int32, 0, 42);

引数(parameters)

typedArray, index, value

  • typedArray: Int32Array, BigInt64Array, Uint32Array, BigUint64Array など、アトミック操作が可能な数値型 TypedArray
  • index: number: 値を格納する typedArray 内のインデックス
  • value: number: typedArray に格納する値

戻り値(return)

格納された値

Atomics.store() は、指定された共有メモリのインデックスに値を格納し、その格納された値を返します。

関連コンテンツ