J'ai une question à propos de la mise en œuvre de coroutine. J'ai vu coroutine
d'abord sur Lua et stackless-python. Je pourrais comprendre le concept de celui-ci, et comment utiliser yield
mot-clé, mais je ne peux pas comprendre comment il est mis en œuvre.Comment les coroutines sont-elles implémentées?
Puis-je obtenir des explications à leur sujet?
+1, c'est la façon de le faire si vous avez accès à la pile comme vous le faites en C ou la plupart des Smalltalks (ou si vous avez implémenté * votre propre pile *, qui est essentiellement ce que Stackless Python et la Lua VM font). –
Il est également intéressant de noter que les coroutines fonctionnent très bien comme des processus (ou des threads de système d'exploitation) sur un système d'exploitation multitâche coopératif. Chaque processus s'exécute sur le CPU jusqu'à ce qu'il retourne au noyau, à quel point le système d'exploitation sauvegarde le PC (et un tas d'autres choses), choisit un autre processus à exécuter et saute au PC précédemment enregistré pour ce processus. Bien sûr, chaque processus a sa propre pile, comme le font les corotines. – Feuermurmel