「同期」とはどういう意味ですか? 質問する

「同期」とはどういう意味ですか? 質問する

キーワードの使用法と重要性に関していくつか質問がありますsynchronized

  • キーワードの重要性は何ですかsynchronized?
  • メソッドはいつ実行すべきですかsynchronized?
  • プログラム的および論理的には何を意味するのでしょうか?

ベストアンサー1

キーワードsynchronizedは、異なるスレッドが同じ変数、オブジェクト、リソースを読み書きすることです。これは Java では些細な話題ではありませんが、Sun からの引用を次に示します。

synchronizedメソッドを使用すると、スレッドの干渉やメモリの一貫性エラーを防ぐためのシンプルな戦略が可能になります。オブジェクトが複数のスレッドから参照できる場合、そのオブジェクトの変数へのすべての読み取りまたは書き込みは、同期メソッドを通じて実行されます。

ごく簡単に言うと、という変数など、同じ「リソース」に対して読み取りと書き込みを行うスレッドが 2 つある場合foo、これらのスレッドがアトミックな方法で変数にアクセスするようにする必要があります。synchronizedキーワードがないと、スレッド 1 はスレッド 2 が に対して行った変更を認識しない可能性がありますfoo。さらに悪いことに、半分しか変更されない可能性があります。これは、論理的に期待される結果ではありません。

繰り返しますが、これは Java では重要なトピックです。詳しくは、SO やインターネットで次のトピックを調べてください。

「Brian Goetz」という名前があなたの脳内で「並行性」という用語と永久に関連付けられるようになるまで、これらのトピックを調べ続けてください。

おすすめ記事