Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Stackless Python
Stackless Python 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Stackless Python

Informations
Dépôt github.com/stackless-dev/stacklessVoir et modifier les données sur Wikidata
Écrit en Python et CVoir et modifier les données sur Wikidata
Système d'exploitation LinuxVoir et modifier les données sur Wikidata
Type Implémentation d'un langage de programmation (en)
Dialecte (en)
InterprèteVoir et modifier les données sur Wikidata
Licence Python Software Foundation LicenseVoir et modifier les données sur Wikidata
Site web github.com/stackless-dev/stackless/wikiVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

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. 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.

Concevoir

[modifier | modifier le code]

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)[1].

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[2]). Pour utiliser plusieurs cœurs de processeur, il faudrait toujours créer un système de communication interprocessus au-dessus des processus Python Stackless.

En raison du nombre considérable de modifications dans la source, Stackless Python ne peut pas être installé sur une installation Python préexistante en tant qu'extension ou bibliothèque. Il s'agit plutôt d'une distribution Python complète en soi. La majorité des fonctionnalités de Stackless ont également été implémentées dans PyPy, un interpréteur Python auto-hébergé et un compilateur JIT[3].

Utilisation

[modifier | modifier le code]

Bien que l'ensemble Stackless soit une distribution distincte, sa fonctionnalité de commutation a été empaquetée avec succès sous la forme d'une extension CPython appelée greenlet[4]. Il est utilisé par un certain nombre de bibliothèques (par exemple gevent[5]) pour fournir une solution de threading verte pour CPython. Python a depuis reçu une solution native pour les threads verts : wait/async.

Stackless est largement utilisé dans la mise en œuvre du jeu en ligne massivement multijoueur Eve Online ainsi que dans la plate-forme de messagerie d'IronPort.

Notes et références

[modifier | modifier le code]
  1. ↑ Al Sweigart, Automate the Boring Stuff with Python, No Starch Press, 2015 (lire en ligne)
  2. ↑ « About Stackless » (consulté le 26 août 2016) : « a round robin scheduler is built in. It can be used to schedule tasklets either cooperatively or preemptively. »
  3. ↑ « Application-level Stackless features — PyPy documentation », sur pypy.readthedocs.org
  4. ↑ « greenlet: Lightweight concurrent programming — greenlet 0.4.0 documentation », sur greenlet.readthedocs.org
  5. ↑ « What is gevent? — gevent 1.3.0.dev0 documentation », sur www.gevent.org

Liens externes

[modifier | modifier le code]
  • (en) Page de Stackless Python
  • (en) Introduction à la programmation concurrente avec Stackless Python
v · m
Python
Implémentation
  • CPython
  • IronPython
  • Jython
  • Numba
  • PyPy
  • Shed Skin
  • Stackless Python
Framework
  • CherryPy
  • Django
  • Flask
  • Mako
  • PyObjC (en)
  • Qt
    • PyQt
    • PySide
  • PyGTK
  • Scrapy
  • TurboGears
  • Web2py
IDE
  • Anjuta
  • IDLE
  • KDevelop
  • Komodo
  • Microsoft Visual Studio
  • PyCharm
  • Spyder
  • Visual Studio Code
Organisations
  • Python Software Foundation
  • Django Software Foundation
  • Django Girls
  • PyLadies
Autres
  • Python Software Foundation License
  • Pip
  • Liste de logiciels Python
  • Guido van Rossum
  • PyCon
  • PyPI
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Stackless_Python&oldid=225583123 ».
Catégories :
  • Logiciel écrit en Python
  • Logiciel écrit en C
  • Python
  • Logiciel libre sous licence PSFL
Catégories cachées :
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P306
  • Page utilisant P31
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id