Ответ
Корутины легче потоков, потому что:
- Переключение контекста - у корутин оно происходит в пользовательском пространстве (без участия ОС), а у потоков - на уровне ядра (дорого).
- Память - каждый поток имеет свой стек (~1MB по умолчанию), корутины же используют общий пул потоков и легковесные объекты Continuation.
- Создание - запуск корутины это просто создание объекта, тогда как поток требует системных вызовов.
Пример с корутиной:
GlobalScope.launch { // Легковесная корутина
delay(1000)
println("Done")
}