コードにはAtomicBoolean
フィールドが含まれています。これらのフィールドのget()
とset()
のメソッドだけが呼び出されます。get()およびset()メソッドのみを使用する場合、AtomicBooleanをプリミティブ型に置き換えますか?
これらのフィールドの型を安全にプリミティブブール値に置き換えることはできますか?
つまり、プリミティブブール値の割り当てとアクセス操作は、Javaのアトミック操作です。そしてその観点から私の場合はAtomicBoolean
を使用する理由は見当たりません。
私の理解では、compareAndSet
のようなメソッドが使用されている場合にのみ、比較とアクセスを組み合わせることができます。AtomicBoolean
私はそれについて間違っていますか?理由を説明できますか?
問題のコードを表示することなく広すぎますが、一般的な回答はいいえです。 –
異なるスレッドからフィールドにアクセスしていますか? – VGR
競合状態には、check-then-actとread-modify-writeの2種類があります。 'AtomicBoolean'をプリミティブブールに置き換えると、前者の問題になります。 – mre