Java Gold SE8 (山本道子著)のP376にこう書いてある。
共有して使用されるオブジェクトの中で、複数のスレッドで同時に実行したくない箇所にsynchronizedキーワードを指定すると、吐いた制御を実現できます。synchronizedを使用することにより、同時に1つのスレッドからしか実行されないことが保証されます。
synchronizedが指定された箇所をあるスレッドが実行している間、共有のオブジェクトはロックがかかった状態になります。ロック(lock)は直訳の「施錠」のとおり、オブジェクトに鍵をかけます。したがって、ロックがかかっている状態のときに別のスレッドに制御が移り、そのスレッドが共有オブジェクトのsynchronizedが指定された箇所を実行しようとしても、そのスレッドは待たされることになります。そして、synchronizedが指定された箇所の処理が終了するとロックは解放されます。
共有して使用されるオブジェクトの中で、複数のスレッドで同時に実行したくない箇所にsynchronizedキーワードを指定すると、吐いた制御を実現できます。synchronizedを使用することにより、同時に1つのスレッドからしか実行されないことが保証されます。
synchronizedが指定された箇所をあるスレッドが実行している間、共有のオブジェクトはロックがかかった状態になります。ロック(lock)は直訳の「施錠」のとおり、オブジェクトに鍵をかけます。したがって、ロックがかかっている状態のときに別のスレッドに制御が移り、そのスレッドが共有オブジェクトのsynchronizedが指定された箇所を実行しようとしても、そのスレッドは待たされることになります。そして、synchronizedが指定された箇所の処理が終了するとロックは解放されます。
※コメント投稿者のブログIDはブログ作成者のみに通知されます