Junior — Middle
Quel est le rôle principal des coroutines en programmation et en quoi diffèrent-elles des threads?
sobes.tech IA
Réponse de l'IA
Les coroutines sont des threads légers qui permettent d’écrire du code asynchrone et concurrent plus simple et compréhensible. Sur Android (et Kotlin), les coroutines sont utilisées pour exécuter des tâches en arrière-plan sans bloquer le thread principal (thread UI).
Principales différences entre coroutines et threads :
- Légèreté : les coroutines consomment beaucoup moins de ressources que les threads système.
- Gestion : les coroutines sont gérées par un planificateur à l’intérieur de l’application, et non par le système d’exploitation.
- Pause et reprise : les coroutines peuvent être suspendues à certains points (suspend) et reprises, ce qui simplifie la programmation asynchrone.
Exemple d’utilisation de coroutine en Kotlin pour Android :
import kotlinx.coroutines.*
fun loadData() {
GlobalScope.launch(Dispatchers.Main) { // lancer une coroutine sur le thread principal
val data = withContext(Dispatchers.IO) { // passer à un thread en arrière-plan
fetchDataFromNetwork() // requête longue
}
updateUI(data) // mettre à jour l’UI
}
}
Ainsi, les coroutines permettent d’écrire du code asynchrone qui ressemble à du code séquentiel, sans callbacks complexes ni blocages.