[解決済み] シンクロナイズド」とはどういう意味ですか?
2022-03-19 11:14:26
質問
の使い方や意味について、いくつか質問があります。
synchronized
というキーワードがあります。
-
の意義は何ですか?
synchronized
というキーワードがあります。 -
メソッドはどのような場合に
synchronized
? - プログラム的、論理的にはどうなのか?
どのように解決するのですか?
その
synchronized
キーワードは、異なるスレッドが同じ変数、オブジェクト、リソースを読み書きすることについてのすべてです。 これはJavaの些細な話題ではありませんが、以下はSunからの引用です。
synchronized
メソッドを使用すると、シンプルな
スレッド防止策
干渉とメモリの一貫性
エラー: もしオブジェクトが
複数のスレッドがある場合、すべての読み取りまたは
そのオブジェクトの変数への書き込みは
は、同期化されたメソッドを介して行われます。
とてもとても小さな一言で言えば
2つのスレッドが同じ「リソース」を読み書きしている場合、例えば
foo
これらのスレッドがアトミックな方法で変数にアクセスすることを保証する必要があります。 このとき
synchronized
キーワードを使用すると、スレッド 1 にはスレッド 2 が行った
foo
あるいは、もっと悪いことに、半分しか変更されていないかもしれません。 これは、論理的に期待されることではありません。
繰り返しになりますが、これはJavaでは自明なことではありません。 もっと詳しく知りたい方は、ここSOやインターネッツのトピックを探ってみてください。
という名前になるまで、これらのトピックを探求し続けてください。 "Brian Goetz" という言葉が恒久的に関連づけられるようになりました。 コンカレンシーと呼ばれるものです。 が脳裏に浮かびます。
関連
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] varキーワードの目的と、どのような場合に使用する(または省略する)べきですか?
-
[解決済み] 静的メソッドを使用する場合
最新
-
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(内部サーバーエラー)のステータスで応答しました。
-
IllegalArgumentException この例外を解決する方法
-
final, finally, finalizeの違いについて話してください。
-
Dateが型に解決できない問題を解決する
-
javaで非静的な解を静的な参照にすることができない
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
このラインで複数のマーカーを解決する方法
-
テストが見つかりませんでした