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