Ответ
В Kotlin Coroutines есть несколько билдеров для запуска корутин:
launch- запускает корутину без результата (fire-and-forget)
scope.launch {
// выполнение кода
}
async- запускает корутину с возможностью получить результат черезawait()
val deferred = scope.async {
// вычисления
return@async result
}
val result = deferred.await()
runBlocking- блокирует текущий поток до завершения корутины (используется в основном для тестов или main-функций)
runBlocking {
// блокирующий код
}
coroutineScope/supervisorScope- создают новую область видимости для корутин с разными стратегиями обработки ошибок.