📝

【Android】@Volatile について

2021/05/09に公開

RoomCodelab に登場する@Volatileアノテーションが何者なのかよくわからなかったので、調べてみました。

@Volatile

  • 共有される変数に対して使用し、主にマルチスレッド処理で使用される
  • メモリとキャッシュの値に差異が出ないよう「フィールドの値がキャッシュされることを防止する」=「共有のメモリからしか値を取得出来ない」
  • スレッドからアクセスされるたび、必ず、共有メモリ上の変数の値とスレッド上の値を一致させる
  • なので、複数スレッドからアクセスされる可能性がある場合、@Volatileとして宣言しておくと良い

Discussion