Многопоточность
Что является монитором у нестатического synchronized-метода?
Монитором нестатического synchronized-метода является объект экземпляра класса, к которому принадлежит этот метод. Каждый экземпляр класса имеет свой монитор, который используется для синхронизации доступа к нестатическим synchronized-методам и блокам кода.
Когда поток пытается получить доступ к нестатическому synchronized-методу, он должен сначала захватить монитор этого экземпляра класса. Если монитор уже захвачен другим потоком для этого экземпляра, текущий поток будет ожидать, пока монитор не будет освобожден.
Таким образом, каждый экземпляр класса имеет свой собственный монитор, что позволяет разным потокам параллельно вызывать нестатические synchronized-методы на разных экземплярах класса.
Важно отметить, что нестатический synchronized-метод блокирует доступ к этому методу только для других нестатических synchronized-методов и блоков кода того же экземпляра класса. Он не блокирует доступ к статическим synchronized-методам или другим несинхронизированным методам класса.