1. ホーム
  2. java

[解決済み] volatileキーワードは何に役立つのでしょうか?

2022-03-14 23:14:12

質問

今日、仕事先で volatile というJavaのキーワードがあります。あまり馴染みがないので、私は この説明 .

その記事が問題のキーワードを詳しく説明していることを考えると、あなたはこのキーワードを使うことがありますか、またはこのキーワードを正しい方法で使うことができるケースを見ることができましたか?

どのように解決するのですか?

volatile は、メモリの可視化に関するセマンティクスを持っています。基本的に volatile フィールドは、書き込み操作が完了すると、すべての読者(特に他のスレッド)から見えるようになります。そのため volatile 読者は、更新されていない値を見ることができます。

ご質問にお答えします。はい、私は volatile 変数を使って、あるコードがループを続けるかどうかを制御します。ループは volatile の値であれば継続します。 true . という条件を設定することができます。 false メソッドを呼び出すことで実現できます。ループは false であり、stopメソッドの実行終了後に値をテストして終了する。

本の"です。 Java並行処理の実際 については、とても良い説明をしています。 volatile . この本は、質問で参照されているIBMの記事を書いた人と同じ人が書いたものです(実際、その記事の下のほうで自分の本を引用しています)。私の使用法は volatile は、彼の論文では "パターン1ステータスフラグと呼ばれているものです。

について詳しく知りたい方は volatile を読んでください。 Javaメモリモデル . それ以上のレベルであれば、以下のようなコンピュータアーキテクチャの本を読んでみてください。 ヘネシー&パタソン と、キャッシュコヒーレンスとキャッシュコンシステンシーについて読んでみてください。