Что вызывается в Coroutine

«Что вызывается в Coroutine» — вопрос из категории Coroutines и Flow, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

launch и async — основные строители корутин.

  • launch запускает корутину без возврата результата (возвращает Job).
  • async возвращает Deferred<T> (аналог Future), результат можно получить через await().

Пример:

val job = launch {  
    delay(1000)  
    println("Done")  
}  

val deferred = async {  
    delay(500)  
    "Result"  
}  

println(deferred.await())  
job.join()  

Контекст:

  • Dispatchers.Default — CPU-интенсивные задачи.
  • Dispatchers.IO — работа с сетью/диском.
  • Dispatchers.Main — UI-поток (Android).

Отмена через job.cancel() или coroutineContext.cancel().