Ответ
- Race Condition – когда несколько потоков обращаются к общим данным без синхронизации, и результат зависит от порядка выполнения.
var counter = 0
repeat(100) {
thread { counter++ } // Непредсказуемый результат
}
- Deadlock – взаимная блокировка потоков, когда каждый ждёт освобождения ресурса, занятого другим.
val lockA = Any()
val lockB = Any()
thread { synchronized(lockA) { synchronized(lockB) { ... } } }
thread { synchronized(lockB) { synchronized(lockA) { ... } } }
-
Memory Leaks – утечки из-за удержания ссылок в фоновых потоках (например,
ThreadилиHandlerThreadбез очистки). -
UI-заморозки – долгие операции в главном потоке приводят к лагам интерфейса.
-
LiveData/Flow Race – подписка на данные из фонового потока без правильного контекста (
Dispatchers.Main.immediate).
Решение: Использовать Coroutine с Mutex, SharedFlow, или synchronized, избегать блокировок, проверять контексты.
Видео-ответы
▶
SENIOR Java Собеседование | Backend-Mock интервью
▶
Пробное Senior C# собеседование (мок-интервью) №2
▶
Тестовое интервью в МТС на Middle Java
▶
Тестовое интервью в Oracle на middle Java
▶
Джун знает теорию, но не смог написать генератор?? / Лайвкодинг / Техсобес Junior Python Developer
▶
Из Node JS в .NET разработчики | Тестовое собеседование C#
▶
Собеседование Java | Backend mock interview
▶
МОК Собеседование Junior iOS разработчик
▶
Моковое собеседование на Junior iOS-разработчика| Екатерина Батеева, Одноклассники
▶
iOS Мок Интервью Junior разработчика - Анастасия
▶
Собеседование junior iOS разработчик
▶
Сильный джун или почти миддл? / Техсобес студента-программиста на позицию Junior Python Dev.
▶
Мок собеседование iOS
▶
Техническое интервью Java Developer - Алексей Гумен