JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのAtomics.store()メソッドとは?配列の指定位置に値を格納する方法


Atomics.store()メソッドとは

Atomics.store()は、JavaScriptに標準で組み込まれているメソッドの一つで、配列(TypedArray)の指定した位置に値を格納し、格納された値を戻り値として返します。このメソッドは、整数型のTypedArray、インデックス、格納する値の3つを引数として受け取ります。

また、Atomicsは複数スレッド間でデータを共有する際に競合状態(レースコンディション)を防ぐためのものであり、操作が中断されることなく一括して実行されることが保証されています。

構文

Atomics.store(typedArray, index, value);

パラメータ

  • typedArray … 値を格納したい共有整数型のTypedArray(例:Uint8Array など)。
  • index … 値を格納する配列内の位置(インデックス番号)。
  • value … 格納したい数値。

特定の位置に値を書き込み、その書き込んだ値を同時に取得したい場合に、Atomics.store()が活用されます。

注意点として、AtomicsSharedArrayBuffer(固定長のバイナリデータバッファ)オブジェクトと組み合わせて使用します。new演算子によるインスタンス化や、通常の関数としての直接呼び出しはできません。

使用例

以下の例では、まずSharedArrayBufferオブジェクトを作成しています。続いて配列「arr」を用意し、インデックス1に初期値「7」を代入します。その後、Atomics.store()を使ってインデックス1の値7を3に置き換え、更新後の値が返されます。新しい値が正しく保存されたかを確認するために、最終的な更新済みの配列から値を読み取るAtomics.load()メソッドを使用し、その結果が出力に表示されます。

<html>
<body>
<script>
    var buf = new SharedArrayBuffer(25);
    var arr = new Uint8Array(buf);
    arr[1] = 7;
    var res = Atomics.store(arr, 1, 3)
    document.write(res);
    document.write("</br>");
    document.write(Atomics.load(arr,1));
</script>
</body>
</html>

出力結果

3
3

  1. JavaScriptのtest()メソッドとは?使い方をサンプル付きで解説

    JavaScriptのtest()メソッドは、正規表現(RegExp)に属するメソッドの一つです。対象となる文字列の中に、指定したパターンが存在するかどうかを検索し、その結果に応じてtrueまたはfalseのブール値を返します。パターンが見つかればtrue、見つからなければfalseとなります。また、test()メソッドは大文字と小文字を区別するという重要な特徴を持っています。ここでは、実際のコード例を使いながら、test()メソッドの使い方を詳しく見ていきましょう。 基本構文 test()メソッドは、以下のように正規表現リテラルに対して呼び出して使用します。 /パターン/.test(検索対象

  2. JavaScriptのWeakMapでclear()メソッドを使う方法とは?

    WeakMapのclear()メソッドとはWeakMapオブジェクトのclear()メソッドは、そのWeakMapに格納されているすべてのキーと値のペアを一括で削除するためのメソッドです。しかし、このメソッドは現在のECMAScriptの仕様からは削除されています。そのため、標準のWeakMapに対して直接clear()を呼び出すことはできません。とはいえ、WeakMapオブジェクトをラップするクラスを作成し、clear()メソッドに対応した処理を追加することで、同様の機能を簡単に実現できます。実装例:clear()メソッドを持つWeakMapラッパークラスclass ClearableWea