Встречается на собеседованиях • сегодня
Почему завис
Зависание может происходить по нескольким причинам:
- Deadlock – два потока блокируют друг друга, ожидая освобождения ресурсов.
- Бесконечный цикл – например,
while(true)без условия выхода. - Долгие операции в UI-потоке – блокировка Event Dispatch Thread в Swing/JavaFX.
- Утечка памяти (OOM) – приложение "тормозит" из-за частого GC.
Пример deadlock:
java
Object lock1 = new Object();
Object lock2 = new Object();
// Поток 1
synchronized (lock1) {
synchronized (lock2) { ... } // Ждёт lock2
}
// Поток 2
synchronized (lock2) {
synchronized (lock1) { ... } // Ждёт lock1
}Как исправить:
- Использовать
tryLock()или упорядоченные блокировки. - Выносить тяжелые вычисления в отдельные потоки.
- Мониторить память и потоки через VisualVM/JProfiler.

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