Назад к вопросам
Junior — Middle
79
Какими методами можно инициировать выполнение coroutine в Kotlin?
Компании, где спрашивали
Netris
Ответ от нейросети
sobes.tech AI
В Kotlin coroutine можно инициировать несколькими способами, в зависимости от контекста и требований:
- launch — запускает новую coroutine, не блокируя текущий поток, возвращает Job. Используется для фоновых задач.
GlobalScope.launch {
// код в coroutine
}
- async — запускает coroutine и возвращает Deferred, который можно использовать для получения результата асинхронно.
val deferred = GlobalScope.async {
// вычисление
42
}
val result = deferred.await()
- runBlocking — блокирует текущий поток до завершения coroutine, обычно используется в main или тестах.
runBlocking {
// код
}
- withContext — переключает контекст выполнения внутри coroutine, например, на другой диспетчер.
withContext(Dispatchers.IO) {
// операция ввода-вывода
}
Выбор метода зависит от того, нужно ли получить результат, блокировать поток или просто запустить задачу в фоне.