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

У каждого ли экземпляра есть свой mutex

Нет, не у каждого экземпляра есть свой мьютекс по умолчанию. Мьютекс — это отдельный объект (например, ReentrantLock или synchronized блок), который нужно явно создавать и использовать для синхронизации.

Пример с synchronized:

java
public class Counter {
    private int count = 0;
    
    public synchronized void increment() {  // Используется монитор объекта Counter
        count++;
    }
}

Пример с ReentrantLock:

java
public class Counter {
    private int count = 0;
    private final Lock lock = new ReentrantLock();  // Явное создание мьютекса
    
    public void increment() {
        lock.lock();
        try {
            count++;
        } finally {
            lock.unlock();
        }
    }
}

Монитор объекта (используемый в synchronized) есть у каждого экземпляра, но это не отдельный мьютекс, а часть JVM-реализации.

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

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

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

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