シンクロナイズドメソッド同期を取るメソッド。synchronizedで修飾されたメソッド。}」のように、メソッドの宣言の先頭にsynchronizedが付けられたメソッド。マルチスレッドにおいて、複数のスレッドが同時に呼び出すことができないメソッド。synchronizedメソッドは、呼び出すスレッドを1つに限定することができる。2つのスレッドからほぼ同時に呼び出された場合、先に呼び出した側がメソッドを終了させない限り、後から呼び出した側が待たされる。synchronizedメソッドは、そのメソッドが属するインスタンスが異なる場合には機能しない。synchronizedメソッドは、thisが同じ場合にのみ待たせることができ、thisが異なる場合には待たせない。これは、synchronizedメソッドが「フィールドの同期を取る」ためのものだからである。複数のスレッドが同時にアクセスすると、先のスレッドがフィールドの値を書き換える前に後のスレッドがフィールドの値を読み取り、値が誤ったものになってしまう可能性があるからである。synchronizedメソッドはそれを防ぐためのものである。フィールドにアクセスするメソッドをsynchronizedメソッドとすることで、先のスレッドがメソッドを呼び出し終えるまで後のスレッドを待たせることができる。それにより、フィールドの値を常に保つことができる。インスタンスが異なれば、フィールドも異なるため、同期を取る必要はない。インスタンスが異なるとsynchronizedメソッドが機能しないのはこのためである。この目的のため、synchronizedメソッドは全て同期の対象となる。synchronizedメソッドが複数存在する場合、同じように機能する。synchronizedメソッドAがスレッド1に呼び出されている間に、synchronizedメソッドBをスレッド2呼び出そうとした場合、呼び出しはスレッド1によるsynchronizedメソッドA呼び出しが終了するまで待たされる。synchronizedメソッドを使用することで同期を取ることができるが、待ち時間が生じるため、動作に時間が掛かる可能性がある。synchronizedメソッド以外にも、同期を取る機能としてsynchronizedブロックがある。synchronizedメソッドは、synchronizedブロックをthisに対して行うものであり、自クラスのフィールドに対して排他制御を行いたい場合にはsynchronizedメソッドの方がいいだろう。別スレッドの方を呼び出します。