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

Что такое Lock у Mutex

Lock (блокировка) в контексте Mutex — это механизм синхронизации, который обеспечивает эксклюзивный доступ к общему ресурсу только одному потоку. Mutex (Mutual Exclusion) гарантирует, что если один поток захватил блокировку, другие потоки будут ждать её освобождения.

Пример с ReentrantLock (реализация интерфейса Lock в Java):

java
Lock lock = new ReentrantLock();

void criticalSection() {
lock.lock(); // Захватываем блокировку
try {
// Критическая секция (доступ к общему ресурсу)
} finally {
lock.unlock(); // Всегда освобождаем в finally
}
}

text

Ключевые особенности:
- **Блокирующий**: Поток ожидает, если блокировка занята.
- **Reentrant**: Один поток может захватывать одну блокировку несколько раз.
- **Явное управление**: В отличие от `synchronized`, требует ручного вызова `unlock()`.

Mutex — это частный случай Lock, обычно нереентерабельный (как в C++ `std::mutex`). В Java `synchronized` — это встроенная реализация мьютекса.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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