Можно применять как модификатор метода, и как самостоятельный оператор с блоком кода. Выполняет код при захваченном
мониторе объекта. В виде оператора объект указывается явно. В виде модификатора нестатического метода используется
this, статического –
.class текущего класса.
Один из основных инструментов обеспечения потокобезопасности. Одновременно выполняется не более одного блока
synchronized на одном и том же объекте. Такая блокировка называется
intrinsic lock или
monitor lock, подробно рассматривается в
Java Concurrency in Practice 2.3.1.
Блок
synchronized также необходим для использования методов
wait, notify, notifyAll.