Sobes.tech
Назад к вопросам
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, когда нужно получить результат асинхронной операции.