C# メモリ モデルの理論と実践 Igor Ostrovsky 今回は、C# メモリ モデルについて 2 回にわたってお伝えする連載の第 1 回です。今回は、C# メモリ モデルが保証することについて説明し、この保証を推進するコード パターンを紹介します。次回は、この保証が Microsoft .NET Framework 4.5 のさまざまなハードウェア アーキテクチャでどのように実現されるかを詳しく説明します。 コンパイラとハードウェアは、プログラムのメモリ命令をわずかに変化させることがあり、その方法によってはシングルスレッドの動作に影響しなくても、マルチスレッドの動作に影響することがあるため、これがマルチスレッド プログラミングを複雑にする要因の 1 つになることがあります。次のメソッドを考えてみます。 void Init() { _data = 42; _initialized =