Встречается на собеседованиях • сегодня
Что такое 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` — это встроенная реализация мьютекса.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы