スレッド
プロセス とは異なり、メモリ空間 を共有するため 異なるスレッド間で同じデータにアクセス可能 そのため、複数スレッドから同じデータにアクセスするときには、アクセスする順序を意識する必要がある
あるデータを初期化し、再度同じデータを読んで値を確認する プログラム を考える このプログラムをスレッド A で実行する
しかし、異なるプログラムがスレッド B で動いていたとして、スレッド B からデータを書き換えたとする
この書き換えが A のデータ初期化と読み込みの間で起こった場合、スレッド A のプログラムから見ればデータが勝手に書き換わったように見える
そのため、複数スレッドを扱う際には、ロック などを用いて ABA のような予期せぬ問題が起きないようにする ただし、デッドロック など別の問題が起きるため、いずれにせよ細心の注意が必要