Что такое многопоточность (multithreading)

«Что такое многопоточность (multithreading)» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Многопоточность — это способ выполнения нескольких потоков (threads) внутри одного процесса параллельно или псевдопараллельно. Каждый поток имеет свой стек и контекст, но разделяет память и ресурсы процесса.

В Android:

  • UI-поток (главный) обрабатывает события и обновляет интерфейс.
  • Долгие операции (сеть, БД) выполняются в фоновых потоках, чтобы не блокировать UI.

Пример с Thread:

Thread {
    // Фоновая задача
    val result = doHeavyWork()
    runOnUiThread {
        // Обновление UI из главного потока
        textView.text = result
    }
}.start()

Альтернативы:

  • Coroutines (предпочтительно)
  • AsyncTask (устарел)
  • Handler + Looper

⚠️ Проблемы: гонки данных, deadlocks — нужна синхронизация (synchronized, Mutex).

Видео-ответы