Junior — Middle
92
Können Sie die Unterschiede zwischen den Funktionen launch und async bei der Verwendung des Coroutine Builder in Kotlin erklären?
Unternehmen wurden gefragt
Effective Mobile
Antwort von AI
sobes.tech KI
В 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 — для запуска задач с результатом.