Stakløs Python | |
---|---|
Type | Python programmeringssprog fortolker |
Udvikler | Christian Tismer [1] og medforfattere [2] |
Skrevet i | C |
Operativ system | Linux , macOS , Windows , PSP OS [3] |
nyeste version | 3.8.1 [4] ( 11. august 2021 ) |
Test version | 3.9.0 alfa 0 [5] ( 11. august 2021 ) |
Licens | Python Software Foundation-licens |
Internet side | stackless.com |
Stackless Python , eller blot Stackless , er en version af Python -programmeringssprogsfortolkeren , som er opkaldt på grund af afvisningen af at bruge standard C -opkaldsstakken til fordel for sin egen stack. Den mest imponerende egenskab ved Stackless er mikrotråde , som undgår det overdrevne forbrug af systemressourcer, der er iboende i standard operativsystemtråde. Ud over de standard Python-funktioner tilføjer Stackless understøttelse af coroutines , kommunikationskanaler og opgaveserialisering .
Den stakløse tolk styrer mikroflows på egen hånd. Dette hjælper med at reducere overhead af systemressourcer på tråde og kan reducere CPU-belastningen betydeligt i nogle situationer, hvor antallet af tråde er meget højt.
På grund af et betydeligt antal kildeændringer til den originale CPython , kan Stackless ikke installeres som et bibliotek eller en fortolkerudvidelse , så den distribueres som en selvstændig Python- fortolker .
Med Stackless Python opdeles et kørende program i mikrotråde, som styres af sprogfortolkeren selv, og ikke af styresystemets kerne - kontekstskift og opgaveplanlægning udføres udelukkende i fortolkeren (derved også betragtet som en form for grøn tråd ) . Microthreads styrer udførelsen af forskellige underopgaver i et program på den samme processorkerne. De er således et alternativ til hændelsesbaseret asynkron programmering og undgår også overhead ved at bruge separate tråde til single-core programmer (fordi tilstandsskift mellem brugertilstand og kernetilstand ikke er påkrævet, så CPU-brug kan reduceres).
Mens mikrotråde gør det nemmere at køre underopgaver på en enkelt kerne, bruger Stackless Python stadig CPythons globale fortolkerlås (GIL) og bruger ikke flere tråde og/eller processer. Så Stackless Python giver kun mulighed for samarbejdende multitasking på en delt processor, ikke parallelisme (forbehold var ikke oprindeligt tilgængelig, men er nu tilgængelig i en eller anden form). For at bruge flere processorkerner skal du stadig oprette et inter-proces kommunikationssystem oven på Stackless Python processer.
På grund af et betydeligt antal ændringer i kildekoden, kan Stackless Python ikke installeres som en udvidelse eller et bibliotek som en tilføjelse til en eksisterende CPython-implementering af Python. Stackless Python er en komplet selvstændig Python-distribution. De fleste af funktionerne i Stackless Python er også blevet implementeret i PyPy, en selvstændig Python-fortolker og JIT-compiler.
Python | |
---|---|
Fællesskab | |
Implementeringer | |
Andet |
|