Встречается на собеседованиях • сегодня
Как избежать Deadlock
Deadlock возникает, когда потоки блокируют друг друга, ожидая ресурсы. Основные способы избежать:
- Упорядоченные блокировки – всегда захватывать блокировки в одинаковом порядке:
java
// Правильно:
synchronized (lock1) {
synchronized (lock2) {
// код
}
}- Использование tryLock() – с таймаутом для избежания вечного ожидания:
java
if (lock1.tryLock(100, TimeUnit.MILLIS)) {
try {
if (lock2.tryLock(100, TimeUnit.MILLIS)) {
// код
}
} finally {
lock1.unlock();
}
}-
Избегание вложенных блокировок – перепроектировать код так, чтобы не требовалось несколько блокировок.
-
Использование Concurrent коллекций – вместо ручной синхронизации.
-
Анализ зависимостей – выявлять циклические ожидания в дизайне системы.

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