Какие знаешь Builder в корутинах

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

Ответ

В корутинах есть несколько билдеров для запуска корутин:

  1. launch - запускает корутину без результата (fire-and-forget)
scope.launch { 
    // выполнение кода
}
  1. async - запускает корутину с возможностью получения результата через await()
val deferred = scope.async {
    // вычисление
    result 
}
val result = deferred.await()
  1. runBlocking - блокирует текущий поток до завершения корутины (используется в тестах и main())
runBlocking {
    // синхронный код
}
  1. withContext - переключает контекст выполнения
withContext(Dispatchers.IO) {
    // код в IO потоке
}
  1. coroutineScope - создает новую область видимости для корутин
coroutineScope {
    launch { /* ... */ }
}