Назад к вопросам
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, является монитором, который обеспечивает взаимное исключение доступа к защищённому коду.