> В чем отличие launch от async в Kotlin Coroutines (Kotlin, Android)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: MTS, Rutube, IBS

Стек: Kotlin, Android

> Пример ответа

Основное отличие launch от async в Kotlin Coroutines - это возвращаемый результат.
launch запускает корутину, которая не возвращает никакого значения (тип Job). Она используется для fire-and-forget операций, например, обновления UI или записи в базу данных.
async возвращает Deferred<T> - объект, который позволяет получить результат асинхронной операции через вызов await(). Это удобно для параллельных вычислений, когда нужно дождаться нескольких результатов.

Пример:

// launch - без результата
scope.launch {
    doWork()
}

// async - с результатом
val deferred = scope.async {
    fetchData()
}
val data = deferred.await() // приостанавливает корутину до получения результата

Ключевое различие: launch - для задач без возврата, async - для задач, результат которых понадобится позже.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью