Commune · Littérature

Stackless Python

Langage de programmation

Stackless Python est une implémentation du langage Python, nommée ainsi car elle vise à éliminer l'utilisation de la pile du langage C. Le langage supporte les continuations, les générateurs, les microthreads et les coroutines. À cause du nombre considérable de changements dans le code source, Stackless Python ne peut pas être installé par-dessus une installation préexistante de Python en tant qu'extension ou bibliothèque.

Lire la suite

Au contraire, il est une distribution Python complète en elle-même. La plupart des fonctions de Stackless Python ont également été implémentées dans PyPy, un interprète Python en Python. Stackless Python est énormément utilisé dans l'implémentation d'Eve Online, un jeu en ligne massivement multijoueur. Avec Stackless Python, un programme en cours d'exécution est divisé en microthreads qui sont gérés par l'interpréteur de langage lui-même, et non par le noyau du système d'exploitation. Les microthreads gèrent l'exécution de différentes sous-tâches dans un programme sur le même cœur de processeur. Ainsi, ils constituent une alternative à la programmation asynchrone basée sur les événements et évitent également la surcharge liée à l'utilisation de threads séparés pour les programmes monocœur (car aucune commutation de mode entre le mode utilisateur et le mode noyau ne doit être effectuée, de sorte que l'utilisation du processeur peut être réduite). Bien que les microthreads facilitent l'exécution de sous-tâches sur un seul cœur, Stackless Python ne supprime pas le Global Interpreter Lock de CPython, et n'utilise pas non plus plusieurs threads et/ou processus. Il n'autorise donc que le multitâche coopératif sur un processeur partagé et non le parallélisme (la préemption n'était pas disponible à l'origine mais est maintenant sous une forme).

Texte : Wikipédia, CC BY-SA 4.0. ·

Touche pour fermer

Confirmation