Ответ
Suspend-функции легковесны, потому что они не блокируют поток, а лишь приостанавливают выполнение корутины, освобождая поток для других задач. В отличие от потоков, корутины работают на уровне пользователя (не ОС), что минимизирует накладные расходы на создание и переключение контекста.
Пример:
suspend fun fetchData(): String {
delay(1000) // Не блокирует поток, а приостанавливает корутину
return "Data"
}
Ключевые преимущества:
- Нет создания новых потоков
- Минимальные затраты памяти
- Быстрое переключение между корутинами
- Поддержка тысяч одновременных suspend-вызовов