Какие знаешь способы создания потока

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

Ответ

В Android можно создать поток несколькими способами:

  1. Наследование от Thread:
class MyThread : Thread() {
    override fun run() {
        // Код потока
    }
}
// Запуск:
MyThread().start()
  1. Реализация Runnable:
val runnable = Runnable {
    // Код потока
}
Thread(runnable).start()
  1. Использование Kotlin-корутин (предпочтительный способ):
CoroutineScope(Dispatchers.IO).launch {
    // Асинхронный код
}
  1. ExecutorService (для пула потоков):
val executor = Executors.newFixedThreadPool(4)
executor.execute {
    // Код потока
}

Основные нюансы:

  • Прямая работа с Thread не рекомендуется из-за накладных расходов
  • Корутины - современный и эффективный способ
  • UI-операции можно выполнять только в главном потоке