プログラミング言語C/C++が提供するatomic変数*1とそのコピー操作に関するメモ。 2個のatomic変数間における “atomicなコピー操作” は提供されない。通常は “atomic変数からの読込(load)”+“atomic変数への格納(store)” で代用すればよい。ただし、下記コードのような2つのコピー操作が並行実行された場合、load/store操作のインターリーブが起こりうることに留意。*2 // C++11 #include <atomic> using namespace std; // C11 #include <stdatomic.h> atomic_int x = ATOMIC_VAR_INIT(0); // x = 0 atomic_int y = ATOMIC_VAR_INIT(1); // y = 1 void thread1() { atomic_s