[解決済み] volatileキーワードは何に役立つのでしょうか?
質問
今日、仕事先で
volatile
というJavaのキーワードがあります。あまり馴染みがないので、私は
この説明
.
その記事が問題のキーワードを詳しく説明していることを考えると、あなたはこのキーワードを使うことがありますか、またはこのキーワードを正しい方法で使うことができるケースを見ることができましたか?
どのように解決するのですか?
volatile
は、メモリの可視化に関するセマンティクスを持っています。基本的に
volatile
フィールドは、書き込み操作が完了すると、すべての読者(特に他のスレッド)から見えるようになります。そのため
volatile
読者は、更新されていない値を見ることができます。
ご質問にお答えします。はい、私は
volatile
変数を使って、あるコードがループを続けるかどうかを制御します。ループは
volatile
の値であれば継続します。
true
. という条件を設定することができます。
false
メソッドを呼び出すことで実現できます。ループは
false
であり、stopメソッドの実行終了後に値をテストして終了する。
本の"です。
Java並行処理の実際
については、とても良い説明をしています。
volatile
. この本は、質問で参照されているIBMの記事を書いた人と同じ人が書いたものです(実際、その記事の下のほうで自分の本を引用しています)。私の使用法は
volatile
は、彼の論文では "パターン1ステータスフラグと呼ばれているものです。
について詳しく知りたい方は
volatile
を読んでください。
Javaメモリモデル
. それ以上のレベルであれば、以下のようなコンピュータアーキテクチャの本を読んでみてください。
ヘネシー&パタソン
と、キャッシュコヒーレンスとキャッシュコンシステンシーについて読んでみてください。
関連
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] varキーワードの目的と、どのような場合に使用する(または省略する)べきですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] シンクロナイズド」とはどういう意味ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
ファインバグタイプ
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
javaでクラスを作成すると、enclosing classでないように見える
-
Java(1)仕上げの基本概念+eclipseのインストール構成