>>883の言うように残念ながらC/C++のvolatileはマルチスレッドには役立たない。
ttp://www.lambdacs.com/cpt/FAQ.html#Q56
ttp://d.hatena.ne.jp/yupo5656/20040618/p2

ただし例外として、VC++は独自仕様としてメモリバリアを形成するので、マルチスレッド対策にも使える。
ttp://msdn.microsoft.com/en-us/library/12a04hfd.aspx
そうなったのは2005から。
ttp://msdn.microsoft.com/ja-jp/library/bb310595.aspx