スレッドの同期(メソッド)
スレッドの同期とは、複数スレッドが同じタイミングで同じオブジェクトに対して操作できないようにすることを言います。
javaではモニタという機能を使用してスレッドの同期を実現します。

モニタとは、オブジェクトごとに一つ存在しています。スレッドで同期をとる場合、スレッドはまずオブジェクトのモニタを獲得します。
他のスレッドが既にそのオブジェクトのモニタを獲得している場合、別のスレッドはモニタを獲得できません。獲得できるまでスレッド処理は停止されます。
モニタを獲得しているスレッドが実行終了したら、モニタを解放しますので、獲得できるまでスレッド処理停止していたスレッドは処理を再開します。

このようなしくみにより、あるオブジェクトに対してsynchronizedメソッドの実行は一つのスレッドしか実行できないようになります。

Back to top

Information