Встречается на собеседованиях • сегодня
Какие знаешь способы разрешения Deadlock
Deadlock возникает, когда потоки блокируют друг друга, ожидая ресурсы. Основные способы разрешения:
- Упорядоченное получение блокировок
Всегда запрашивать блокировки в одном порядке. Например:
java
synchronized (lock1) {
synchronized (lock2) {
// код
}
}- Timeout для блокировок
ИспользоватьtryLock()с таймаутом вместоsynchronized:
java
if (lock1.tryLock(1, TimeUnit.SECONDS)) {
try {
if (lock2.tryLock(1, TimeUnit.SECONDS)) {
// код
}
} finally {
lock2.unlock();
}
}-
Обнаружение и восстановление
Мониторинг системы на предмет deadlock и принудительное освобождение ресурсов. -
Избегание блокировок
Использование атомарных операций (AtomicIntegerи др.) или lock-free структур данных. -
Кооперативная отмена
Потоки периодически проверяют флаги прерывания и освобождают ресурсы.

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