Un exemple trivial de l'utilisation de la continuation de la mise en œuvre d'un thread (fibre si vous le souhaitez) manager sur un ordinateur à processeur unique. Le planificateur pourrait interrompre le flux d'exécution périodiquement (ou, dans le cas de fibres, être invoquée à différents points stratégiques dans le code), enregistrer la continuation de l'état (correspondant au thread en cours), puis de passer à un autre de la continuation de l'état (correspondant à un autre thread dont l'état a été enregistré précédemment.)
Se référant à votre assemblée d'arrière-plan, la continuation de l'état de capturer des détails tels que les pointeur d'instruction, les registres, et du contexte de la pile (pointeur), pour être sauvé et restauré à volonté.
Une autre façon d'utiliser la continuation serait de penser à remplacer les appels de méthode avec plusieurs threads comme des entités qui co-existent en parallèle (soit en cours d'exécution ou suspendu) de contrôle de transmission pour chaque autre à l'aide de la poursuite des contextes au lieu de la 'classique' call
paradigme. Ils fonctionnent sur le global (partagé) de données au lieu de s'appuyer sur des paramètres. C'est dans une certaine mesure plus souple qu' call
dans le sens que la pile n'a pas à le vent vers le haut puis vers le bas (calls
sont imbriquées), mais le contrôle de passer de manière arbitraire.
Essayer de visualiser ce concept dans une langue telle une C, imaginez-vous avoir une grande boucle avec un seul switch(continuation_point) { case point1: ... }
déclaration, où chaque case
correspond à une poursuite-point de sauvegarde, et où le code à l'intérieur de chaque case
peut modifier la valeur de continuation_point
et de renoncer à de contrôle pour qu' continuation_point
par break
ing de l' switch
et la participation de la prochaine itération de la boucle.
Quel est le contexte de votre question? Tout les scénarios particuliers, vous êtes intéressé? Tout langage de programmation particulier? Est le fil/fibre exemple ci-dessus est-elle suffisante?