Ответ
Корутины — это не потоки, а механизм асинхронного выполнения на уровне языка (Kotlin). Они работают в рамках существующих потоков и не создают новых.
Ключевые отличия:
- Потоки — управляются ОС, требуют больше ресурсов (стек, контекст переключения).
- Корутины — выполняются в потоке, переключаются без затрат ОС, используют
suspend-функции для неблокирующих пауз.
Пример:
// Легковесная корутина (не поток!)
GlobalScope.launch {
delay(1000) // Не блокирует поток
println("Done")
}
Название "легковесные потоки" вводит в заблуждение, так как корутины — это абстракция над асинхронным кодом, а не замена потоков.