私はデザインパターンを学ぼうとしています。このサイトキーワードを使用していますsynchronized
が、それが何をするのか理解できません。
ネットで調べてみると、マルチスレッドやメモリに関係があるらしいのですが、私は機械エンジニアなので、それが何を意味するのか分かりません。
スレッドとsynchronized
キーワードを理解するのを手伝ってくれる人はいますか?
ベストアンサー1
synchronized
C++ にはキーワードはありません。
しかし、Javaにはメソッドのそれは次の2つのことを意味します:
- 同じオブジェクトに対する同期メソッドの 2 つの呼び出しをインターリーブすることはできません。 1 つのスレッドがオブジェクトの同期メソッドを実行している場合、同じオブジェクトの同期メソッドを呼び出す他のすべてのスレッドは、最初のスレッドがオブジェクトを終了するまでブロックされます (実行が中断されます)。
- 同期メソッドが終了すると、同じオブジェクトに対する同期メソッドの後続の呼び出しとの事前発生関係が自動的に確立されます。これにより、オブジェクトの状態の変更がすべてのスレッドに表示されることが保証されます。
また、権威のない恣意的なウェブサイトではなく、査読済みの書籍から学習することをお勧めします。