Встречается на собеседованиях • сегодня
Какие знаешь методы решения Deadlock
Deadlock возникает, когда потоки блокируют друг друга, ожидая ресурсы. Основные методы решения:
- Избегание циклических ожиданий – упорядочивание блокировок (например, всегда захватывать lockA перед lockB).
java
// Правильный порядок
synchronized(lockA) {
synchronized(lockB) { ... }
}- Timeout в блокировках – использование
tryLock()с таймаутом.
java
if (lock1.tryLock(1, TimeUnit.SECONDS)) {
try {
if (lock2.tryLock(1, TimeUnit.SECONDS)) { ... }
} finally { lock2.unlock(); }
} finally { lock1.unlock(); }-
Отказ от части блокировок – перепроектирование логики (например, атомарные операции, immutable объекты).
-
Deadlock detection – мониторинг с помощью JMX или специализированных инструментов (JConsole, VisualVM).
-
Использование higher-level примитивов –
ConcurrentHashMap,CountDownLatchи т.д. вместо ручных блокировок.

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