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

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

Нет, synchronized-методы блокируют весь объект (монитор), даже если работают с разными полями. Для параллельного выполнения нужно использовать разные объекты-мониторы или synchronized-блоки с разными lock-объектами.

Пример:

java
class Example {
    private final Object lock1 = new Object();
    private final Object lock2 = new Object();
    
    void method1() {
        synchronized(lock1) { /* работа с данными 1 */ }
    }
    
    void method2() {
        synchronized(lock2) { /* работа с данными 2 */ }
    }
}

Так методы смогут выполняться параллельно, так как используют разные мониторы.

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

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

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

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