【初心者】Java質問・相談スレッド76【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0250デフォルトの名無しさん
2005/12/01(木) 01:29:44volatileとインクリメントの併用は間違えやすいポイントだよ
c++はワンステップで行われるわけでは無く
1)cのロード
2)c += 1の実行
3)cのストア
の3ステップがある。この場合タイミングによっては、
スレッド1 スレッド2
1) c = 10 1) c = 10
2) c += 1 2) c += 1
3) c = 11 をストア
3) c = 11 をストア
となる事がある
volatileは各1)2)3)をアトミックにしてくれるだけ
意味無いじゃんと思うかも知れないが、longやdoubleでは意味がはっきりするよ
■ このスレッドは過去ログ倉庫に格納されています