Python 3.2 mit besserem Mechanismus für Global Interpreter Lock

Die neue Version der Skriptsprache enthält keine Änderungen an der Syntax, wohl aber an den Datentypen. Neu ist ein die Java-API java.util.concurrent angelehntes Modul zum Verwalten der Threads und Prozesse.

In Pocket speichern vorlesen Druckansicht 123 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Die Python-Entwickler haben die Version 3.2 der Skriptsprache freigegeben. Das neue Release enthält keine Änderungen an der Syntax, jedoch bei den der Sprache eigenen Datentypen. Python geht damit weiter den Ende 2009 eingeschlagenen Weg ("Python Language Moratorium"), erst wieder mit Python 3.3 neue Sprachänderungen vorzunehmen und bis dahin verstärkt daran zu arbeiten, die Akzeptanz des Ende 2008 eingeführten Python 3.x zu fördern. Diese Version war inkompatibel mit der vorigen Generation der Skriptsprache und offenbar nur verhalten angenommen worden.

Ein wichtiger Punkt des neuen Releases war es, einen besseren Mechanismus zur Bewältigung der mit Global Interpreter Lock (GIL) eingehenden Probleme zu finden, die auf Multi-Core-Systemen die Effizienz von CPython-Programmen beeinträchtigen, die Multithreading nutzen wollen. Wegen GIL steht die Skriptsprache schon länger in der Kritik, da der Mechanismus Zugriffskonflikte der Threads nicht verhindert und dadurch zum Flaschenhals für Threads eines Prozesses werden kann.

Das neue "concurrent.futures"-Modul (PEP 3148) ist an die Java-API java.util.concurrent angelehnt und bietet eine einheitliche Schnittstelle zum asynchronen Verwalten der Threads und Prozesse. Es ist der Auftakt für eine Reihe weiterer Module, die ihre Heimat im neuen concurrent-Namensraum haben werden. Weitere Änderungen von Python 3.2 betreffen unter anderem die Unterstützung von .pyc-Repository-Verzeichnissen, eine Python-Implementierung des Datetime-Moduls und den Zugang zu Konfigurationsinformationen über eine neue Systemkonfiguration. Neu implementiert ist PEP 391 (Dictionary-Based Configuration For Logging). Als Konfigurationsoptionen stehen Formatierer, Handler, Filter und Logger zur Verfügung.

Ebenfalls neu ist eine Binärschnittstelle (ABI; Application Binary Interface), die Erweiterungen auch in künftigen Python-Releases ohne Änderungen steuert. Weitere wohl erhebliche Verbesserungen finden sich im SSL-Modul und beim Python-Debugger (pdb). Mehr Informationen findet man in den Release Notes und auf der ausführlichen "What's New In Python 3.2"-Webseite. Die Downloads gibt es ebenfalls auf der python.org-Website.

Siehe dazu auch:

  • Python im heise Software-Verzeichnis