セッターとゲッターメソッドによって公開されたプライベートブール値を保持するクラスがある場合、異なるスレッドからそのブール値を読み書きしたい場合、それらのメソッドを同期として設定する必要がありますか?
3309 次
3 に答える
3
単純な値のアクセスを同期することは、多くの場合不要です。通常、必要なのは、volatile
制限が少なく、より有益なマークを付けることだけです。
それはすべて、値にアクセスする方法に大きく依存します。
場合によっては、 を使用するのAtomicBoolean
が最善の方法です。これは、わずかに異なる保証を に提供しますvolatile
。
詳細については、質問Java: volatile boolean vs AtomicBooleanの質問を参照してください。
于 2013-03-31T22:50:25.673 に答える
2
のクラスを調べるjava/util/concurrent/atomic
と役立つ場合があります。などAtomicBoolean
。
于 2013-03-31T22:55:18.267 に答える
0
はい、セッターとゲッターを同期させることは良い考えです。ブール値の読み取りまたは書き込みはアトミック コマンドではないため、まれに問題が発生する場合があります。(フォームRAMまたはキャッシュのどちらを読んでいるかはわかりません)。揮発性でない限り。
于 2013-03-31T22:50:23.400 に答える