Ответ
launch — это корутин-билдер, который запускает новую корутину без блокировки текущего потока. Возвращает Job, который можно использовать для управления жизненным циклом корутины (отмена, ожидание завершения). По умолчанию корутина запускается в контексте родительской корутины или указанном CoroutineScope.
Особенности:
- Не возвращает результат (используется для fire-and-forget операций)
- По умолчанию обрабатывает исключения через родительский scope
- Может быть отменена через возвращаемый
Job
scope.launch {
// асинхронный код
delay(1000)
println("Выполнено")
}
val job = scope.launch { ... }
job.cancel() // отмена корутины