Ответ
Основные проблемы:
- UI обновления из фонового потока - только главный поток может изменять UI. Решение:
runOnUiThread()илиHandler.
thread {
runOnUiThread { textView.text = "Updated" }
}
-
Race conditions - когда несколько потоков обращаются к общим данным. Решение: синхронизация (
synchronized,Mutex). -
Deadlocks - взаимная блокировка потоков. Избегайте вложенных блокировок.
-
Утечки памяти - фоновые потоки держат ссылки на Activity. Решение:
WeakReferenceили корутины сlifecycleScope. -
ANR - долгие операции в главном потоке. Выносите тяжелые задачи в
Dispatchers.IO.
Для работы с многопоточностью в современном Android предпочтительны корутины с четким управлением жизненным циклом.