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

Используются ли методы synchronized, wait, notifyAll в реальной разработке

Да, но реже, чем раньше. С появлением java.util.concurrent (JUC) предпочтение отдается высокоуровневым механизмам (ConcurrentHashMap, CountDownLatch, ReentrantLock и др.). Однако synchronized все еще используется для простых случаев, например:

java
public class Counter {
    private int count;
    
    public synchronized void increment() {
        count++;
    }
}

wait() и notifyAll() применяются в низкоуровневых сценариях, например, при реализации пулов ресурсов или кастомных блокирующих структур. Но чаще заменяются на Condition из ReentrantLock или BlockingQueue.

Пример с wait/notify:

java
synchronized (lock) {
    while (!condition) {
        lock.wait();
    }
    // выполнение после пробуждения
}

Важно: в 90% случаев лучше использовать JUC, а не низкоуровневые примитивы.

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

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

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

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