Junior — Middle
Quelle est la différence entre les threads d'exécution et les coroutines dans le contexte de la programmation?
sobes.tech IA
Réponse de l'IA
Потоки выполнения (threads) — это системные единицы планирования, которые позволяют выполнять код параллельно, используя отдельные стеки и контексты процессора. Они тяжелее в создании и переключении, требуют синхронизации для доступа к общим ресурсам.
Корутины — это легковесные, кооперативные единицы выполнения, которые работают внутри потоков и позволяют писать асинхронный код последовательно. Корутины не создают новые потоки, а при приостановке освобождают поток для других задач, что повышает эффективность.
Пример на Kotlin:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("Корутина завершена")
}
println("Главный поток")
}
Здесь корутина не блокирует главный поток, а приостанавливается на delay, позволяя другим задачам выполняться.