Встречается на собеседованиях • сегодня
Будут ли выполняться параллельно два 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 */ }
}
}Так методы смогут выполняться параллельно, так как используют разные мониторы.

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