1. ホーム
  2. java

[解決済み] Java volatile referenceとAtomicReferenceの比較

2022-05-07 11:41:24

質問

の違いは何ですか? volatile オブジェクトの参照と AtomicReference を使用する場合、私はちょうど get()set() -メソッドから AtomicReference ?

解決方法は?

短い答えです。いいえ。

から java.util.concurrent.atomic パッケージのドキュメントを参照してください。引用すると

アトミックのアクセスや更新に対するメモリ効果は、一般に揮発性物質のルールに従います。

  • get を読み込むと、メモリ効果があります。 volatile 変数を使用します。
  • set を書き込む(代入する)ことで、メモリ効果を発揮します。 volatile 変数を使用します。

ところで、そのドキュメントはとてもよくできていて、すべてが説明されています。


AtomicReference::lazySet は、より新しい(Java 6+)操作として導入されたもので、そのセマンティクスは volatile 変数を使用します。参照 この記事 をご覧ください。