Frage

Also, ich bin Herumspielen mit Stackless Python und eine Frage in meinem Kopf auftauchte, vielleicht diese ist „angenommen“ oder „gemeinsame“ Wissen, aber ich konnte es nicht wirklich finden überall auf der stackless Website geschrieben .

Hat Stackless Python Vorteile von Multicore-CPUs nehmen? Im normalen Python haben Sie die GIL zu machen (true) Verwendung mehrerer Kerne ständig präsent und darauf, Sie mehrere Prozesse verwenden müssen, gilt dies für Stackless auch?

War es hilfreich?

Lösung

Stackless Python tut nicht Verwendung jeder Art von Multi-Core-Umgebung macht es läuft.
Dies ist ein verbreiteter Irrtum über Stackless, wie es der Programmierer ermöglicht Vorteil gewinde basierte Programmierung zu nehmen. Für viele Menschen diese beiden sind eng miteinander verbunden, sondern sind in der Tat zwei getrennte Dinge.

Intern Stackless verwendet einen Round-Robin-Scheduler jeden Tasklet (Mikro-Threads) zu planen, aber kein Tasklet kann mit einem anderen laufen gleichzeitig werden. Das bedeutet, dass, wenn man Tasklet besetzt ist, müssen die anderen warten, bis dass Tasklet Kontrolle verzichtet. Standardmäßig wird der Scheduler nicht Tasklet stoppen und Prozessorzeit zu einem anderen geben. Es ist die Verantwortung des Tasklet sich am Ende der Planwarteschlange planen wieder mit Stackless.schedule () oder durch seine Berechnungen beenden.

alle Tasklets somit in einer sequentiellen Weise ausgeführt werden, , auch wenn multiplpe Kerne zur Verfügung.

Der Grund, warum Stackless nicht Multi-Core-Unterstützung hat, weil dies macht Fäden eine ganze Reihe einfacher. Und das ist genau das, was stackless geht:

von der offiziellen Website stackless

  

Stackless Python ist eine erweiterte   Version der Python-Programmierung   Sprache. Es ermöglicht Programmierern   Nutzen Sie die Vorteile des Fadens Basis   Programmierung ohne die Leistung   und Komplexität Probleme   mit herkömmlichen Gewinden. Das   Microthreads, die Stackless ergänzt   Python sind eine preiswerte und leichte   Bequemlichkeit, die im Fall seines Einsatzes   richtig, gibt die folgenden Vorteile:

     
      
  • Verbesserte Programmstruktur.
  •   
  • Mehr lesbaren Code.
  •   
  • Erhöhte Produktivität der Programmierer.
  •   

Hier ist ein Link einige weitere Informationen über mehrere Kern und stackless.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top