【初心者】Java質問・相談スレ45【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0515デフォルトの名無しさん
NGNGhogeが単なる一つのint変数ならその推理は正しい。
ていうかその場合は更新するほうのsynchronizedもいらない。
なぜなら
プリミティブ変数一つの更新がスレッドセーフであることは言語仕様で保証されているから。
(ただしint以下の大きさのもの)
だから
更新メソッドに排他がかかっているってことは2つ以上のプリミティブ変数またはオブジェクト等が
更新されているということ。
当然、読み出し側も複数の変数を参照したりして計算した結果を返す必要があるだろう。
このとき排他がかかっていないと
更新中のハンパなタイミングで結果を計算してしまう可能性がある。
■ このスレッドは過去ログ倉庫に格納されています