Back to questions
Junior — Middle
73
Можете объяснить различия между функциями launch и async при использовании Coroutine Builder в Kotlin?
Companies where asked
Effective Mobile
Answer from AI
sobes.tech AI
В Kotlin при работе с корутинами launch и async — это Coroutine Builders, но они имеют разные цели:
-
launchзапускает корутину, которая выполняется асинхронно и не возвращает результат. Она используется для выполнения задач, где результат не нужен, например, для побочных эффектов. -
asyncзапускает корутину, которая возвращаетDeferred<T>— отложенный результат, который можно получить с помощьюawait(). Используется, когда нужно получить результат асинхронной операции.
Пример:
val job = scope.launch {
// выполняется асинхронно, результат не возвращается
}
val deferred = scope.async {
// выполняется асинхронно, возвращает результат
return@async 42
}
runBlocking {
val result = deferred.await() // получаем результат
println(result) // 42
}
Итого, launch — для запуска задач без результата, async — для запуска задач с результатом.