IT用語集 › プログラミング › アトミック操作

アトミック操作

プログラミング Svenska → 更新: 2026-10-21

一つの単位として完了する操作。全体が実行されるか、まったく実行されないかのどちらかである。並行システムで、ロックなしにデータ競合を避けるうえで欠かせない。

CPUの対応は、LOCK XADD(x86)、LDXR/STXR(ARM)、cmpxchg(compare-and-swap)など。言語側では、C++のstd::atomic、JavaのAtomicInteger、RustのAtomicUsize、Goのsync/atomicがある。メモリオーダリングには、逐次一貫(既定で最もコストが高い)、acquire/release、relaxedがある。ロックフリーのデータ構造(キュー、スタック)はCASループの上に作られる。ウェイトフリーはさらに厳しく、各スレッドが有限のステップ内で必ず進捗する。正しく書くのは悪名高いほど難しい。

← 用語集に戻る