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

【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)

戻り値なし

戻り値はありません

関連コンテンツ

関連プログラミング言語