Java で「同期」とはどういう意味ですか? [重複] 質問する

Java で「同期」とはどういう意味ですか? [重複] 質問する

私はデザインパターンを学ぼうとしています。このサイトキーワードを使用していますsynchronizedが、それが何をするのか理解できません。

ネットで調べてみると、マルチスレッドやメモリに関係があるらしいのですが、私は機械エンジニアなので、それが何を意味するのか分かりません。

スレッドとsynchronizedキーワードを理解するのを手伝ってくれる人はいますか?

ベストアンサー1

synchronizedC++ にはキーワードはありません。

しかし、Javaにはメソッドのそれは次の2つのことを意味します:

  • 同じオブジェクトに対する同期メソッドの 2 つの呼び出しをインターリーブすることはできません。 1 つのスレッドがオブジェクトの同期メソッドを実行している場合、同じオブジェクトの同期メソッドを呼び出す他のすべてのスレッドは、最初のスレッドがオブジェクトを終了するまでブロックされます (実行が中断されます)。
  • 同期メソッドが終了すると、同じオブジェクトに対する同期メソッドの後続の呼び出しとの事前発生関係が自動的に確立されます。これにより、オブジェクトの状態の変更がすべてのスレッドに表示されることが保証されます。

同様のルールが任意のブロックにも適用される

また、権威のない恣意的なウェブサイトではなく、査読済みの書籍から学習することをお勧めします。

おすすめ記事