Sobes.tech
Назад к вопросам
Junior — Middle
68

Какой объект выступает в роли блокировщика при использовании ключевого слова synchronized в коде?

Ответ от нейросети

sobes.tech AI

В Java при использовании ключевого слова synchronized объект, на котором происходит синхронизация, выступает в роли блокировщика (монитора). Это может быть:

  • Для синхронизации метода экземпляра — блокируется объект текущего экземпляра (this).
  • Для синхронизации статического метода — блокируется объект класса (Class объект).
  • Для синхронизации блока кода — блокируется объект, указанный в скобках после synchronized.

Пример:

public class Example {
    private final Object lock = new Object();

    public void method() {
        synchronized(lock) {
            // код, защищённый блокировкой lock
        }
    }
}

Таким образом, объект, указанный в synchronized, является монитором, который обеспечивает взаимное исключение доступа к защищённому коду.