Effizientes Multithreading mit Python: GIL-Probleme beim Programmieren umgehen
Der Global Interpreter Lock (GIL) verhindert ein effizientes Multithreading in Python. Doch es gibt Möglichkeiten, dieses Problem zu entschärfen.
- Tam Hanna
Mehr Rechenleistung bekommt man bekanntlich nur dann, wenn man den Workload auf mehrere Prozessorkerne aufteilt. Mit dem Global Interpreter Lock – kurz GIL – steht Programmierern allerdings ein Hindernis im Weg, das effizientes Multithreading in Python unmöglich macht.
In der Theorie spricht zwar nichts dagegen, eine Parallelisierungs-anfällige Applikation einfach in einer anderen Programmiersprache zu schreiben. Man könnte auch nur die Performance-relevanten Teile der Applikation in einer anderen Programmiersprache umsetzen und diese dann in das Python-System integrieren.
Doch für Python-Fans wäre es sicher ein Gräuel, in die Niederungen anderer Programmiersprachen hinabsteigen zu müssen. Eine gemischte Lösung hätte wiederum den Nachteil, dass sie schwieriger zu warten wäre. Lesen Sie also, was es mit GIL auf sich hat – und mit welchen Methoden sich dieses Problem eleganter umschiffen lässt.
Das war die Leseprobe unseres heise-Plus-Artikels "Effizientes Multithreading mit Python: GIL-Probleme beim Programmieren umgehen". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.