Ответ
Job и Deferred — оба представляют корутины, но с разными целями:
- Job — это фоновый процесс без возвращаемого значения. Управляется методами
start(),cancel(),join().
val job = launch { /* работа без результата */ }
job.cancel()
- Deferred — это
Jobс результатом (наследует отJob). Возвращает значение черезawait().
val deferred = async { 42 }
val result = deferred.await() // 42
Ключевое отличие: Deferred используется для асинхронных вычислений с возвратом данных, а Job — для фоновых задач без результата.