【Node.js24.x】Object::Atomicsオブジェクトの使い方
Atomicsオブジェクトの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Atomicsオブジェクトは、JavaScriptの共有メモリ(SharedArrayBuffer)上で、アトミックな(不可分な)操作を実行するための機能を提供するオブジェクトです。これにより、複数のスレッドやワーカーが同じメモリ領域に同時にアクセスする際に発生しうるデータ競合を防ぎ、安全で信頼性の高い並行処理を実現します。
「アトミック」とは、その操作が処理の途中で中断されることなく、全体として一度に完了することが保証される特性を指します。例えば、共有メモリ上のある数値を読み取り、新しい値を書き込む一連の操作が、他のスレッドによって割り込まれることなく実行されるため、常に正しいデータ状態を維持できます。
Atomicsオブジェクトは、加算(add)、減算(sub)、比較と交換(compareExchange)、待機(wait)、通知(notify)といった様々なアトミック操作のメソッドを提供しています。これらは主に、Node.jsのWorker ThreadsやWeb Workersのような環境で、複数のワーカーが共有する数値データを安全に更新したり、ワーカー間の同期を取ったりする際に利用されます。通常、SharedArrayBufferを基盤とするInt32Arrayなどの型付き配列の要素に対してこれらの操作が適用されます。このオブジェクトは、複雑なマルチスレッド環境における共有データの整合性を確保し、システム全体の安定性を高める上で不可欠なツールです。
構文(syntax)
1const sharedBuffer = new SharedArrayBuffer(4 * Int32Array.BYTES_PER_ELEMENT); 2const sharedArray = new Int32Array(sharedBuffer); 3Atomics.add(sharedArray, 0, 5);
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません