マルチスレッドと共有変数 (続き) -- 補足 (2)

Singletonを実装する時などで、いわゆる "double checked locking" を使うなんて場合は、memory sync な関数を使わない部分が出てくるでしょうから、volatile やら コンパイラ固有のメモリバリア手法やらをキッチリ使わないとダメですよ〜。多分。


参考: The "Double-Checked Locking is Broken" Declaration
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html


続き