Встречается на собеседованиях • сегодня
На что синхронизируешься при добавлении synchronized на объект
При добавлении synchronized на метод или блок кода синхронизация происходит по монитору объекта, на котором вызывается метод (для нестатических методов) или по монитору класса (для статических методов).
Пример:
java
public class Counter {
private int count = 0;
// Синхронизация по монитору объекта this
public synchronized void increment() {
count++;
}
// Альтернатива - синхронизация по любому объекту
private final Object lock = new Object();
public void decrement() {
synchronized (lock) { // Синхронизация по объекту lock
count--;
}
}
}Ключевые моменты:
- Для нестатических методов блокируется
this - Для статических методов блокируется
Class-объект (Counter.class) - Можно синхронизироваться по любому объекту через
synchronized(объект) - Все потоки должны использовать один и тот же монитор для корректной синхронизации

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы