Встречается на собеседованиях • сегодня

Будут ли два метода, помеченные как synchronized в контроллере-синглтоне, выполняться одновременно

Нет, synchronized методы в синглтоне блокируются на уровне объекта (this). Если один поток вошел в synchronized метод, другой поток не сможет войти ни в один synchronized метод этого же экземпляра до освобождения монитора.

Пример:

java
public class SingletonController {
    private static SingletonController instance = new SingletonController();
    
    private SingletonController() {}
    
    public static SingletonController getInstance() {
        return instance;
    }
    
    public synchronized void method1() {
        // выполнение
    }
    
    public synchronized void method2() {
        // выполнение
    }
}

Если поток A вызывает method1(), поток B не сможет войти ни в method1(), ни в method2() до завершения method1() у потока A.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы