Junior — Middle
À quel endroit l'état est-il sauvegardé lors du passage entre les fonctions suspendues en Kotlin?
sobes.tech IA
Réponse de l'IA
L'état lors du passage entre les fonctions suspendues en Kotlin est conservé dans un état de coroutine, que le compilateur transforme en une machine à états. Ce mécanisme interne stocke toutes les variables locales et le point de reprise dans une classe générée.
Ainsi, lors de la suspension et de la reprise de la coroutine, le contrôle et les données sont restaurés à partir de cet objet, permettant de continuer l'exécution là où elle a été interrompue.
Cela ressemble approximativement à ceci (de manière simplifiée) :
suspend fun exemple() {
val a = 1
suspendFunction() // ici la coroutine peut se suspendre
println(a) // après la reprise, la valeur de a est conservée
}
Le compilateur crée une classe qui stocke la variable a et la position dans le code pour reprendre l'exécution.