Sobes.tech
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 — для запуска задач с результатом.