- 290 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 17:17:43 ]
- >>282
メモリバリアだから必要ないという認識では、ちょっと違うね。 関数呼び出しをまたいでグローバル変数をキャッシュできないから volatileが必要ないというのが本質。 変数をレジスタ等にキャッシュしていないからこそ、メモリバリアが有効になる。 仮にlockやunlockをインライン展開できるようなコードで実装できたとすると while() { lock(); i = i + 1; unlock(); } はvolatileが無いと危険かもしれない。
|

|