Назад к вопросам
Совкомбанк
Junior — Middle
77
Чем отличаются функции launch и async при использовании корутин в Kotlin?
Компании, где спрашивали
Viasat tech
Dion
Ответ от нейросети
sobes.tech AI
Функции launch и async в Kotlin используются для запуска корутин, но имеют разные цели и возвращают разные типы.
-
launchзапускает корутину, которая выполняется в фоне и не возвращает результата. Она возвращает объектJob, который можно использовать для управления корутиной (например, отмены). -
asyncзапускает корутину, которая возвращает результат в будущем. Она возвращает объектDeferred<T>, который является потомкомJobи позволяет получить результат с помощьюawait().
Пример:
val job = scope.launch {
// выполняем задачу без результата
}
val deferred = scope.async {
// вычисляем и возвращаем результат
42
}
runBlocking {
val result = deferred.await() // получаем результат
println(result) // 42
}
Итого:
- Используйте
launch, когда не нужен результат. - Используйте
async, когда нужно получить результат асинхронной операции.