私の質問の範囲は、メモリ内のアドレスの同時読み取りと書き込み、およびハードウェアで何が起こるかに厳密に限定されています。
競合状態と、この競合が発生した値を使用してプログラムが実行を継続した後にそれらが何を運ぶかについて知りたくありません。PC のロジックが壊れている場合は、クラッシュも発生する可能性がありますが、ここで私の質問はハードウェアと、同時スレッドからの WRITE+READ の影響についてです。
質問: あるスレッドから変数を書き込み、別のスレッドから同じ変数を読み取るとします。何が起こるか?
- この読み取り/書き込みのインターリーブのために、後続のすべてのスレッドが間違った値を読み取るように、変数の値を破損するだけですか?
また
- 場合によっては、ハードウェアの何らかの違反である可能性があるため、アプリがダウンする可能性もあります。
基本的に、変数の物理的な読み取りと書き込みを同時に行うプロセスと、PC の動作についてもっと知りたいと思っています。
私は LINUX と C++ を使用しており、2 つのケースに興味があります。
同じ物理コア上の 2 つのスレッド
2 つの別々のコアに 2 つのスレッド