Einkaufswagen
Loading
Nur noch -1 verfügbar

Multithreading und die GIL in Python verstehen

Aktionspreis
€10.99 (25 % Rabatt)
€8.24
Zum Einkaufswagen hinzugefügt

Multithreading und die GIL in Python verstehen


Ein fundierter Leitfaden zu Threads, paralleler Programmierung und der Rolle des Global Interpreter Lock


Inhaltsverzeichnis


Kapitel 1: Einführung in parallele Programmierung


  • Was bedeutet „Multithreading“?
  • Unterschied: Parallelisierung vs. Nebenläufigkeit
  • Wann lohnt sich Multithreading in Python?
  • Überblick über Threads, Prozesse und Async

Kapitel 2: Grundlagen der Thread-Programmierung in Python


  • Das threading-Modul
  • Einen einfachen Thread starten
  • Threads mit Ziel-Funktion und Argumenten
  • Mini-Projekt: Zwei Funktionen gleichzeitig ausführen

Kapitel 3: Threads verwalten und synchronisieren


  • Warten mit .join()
  • Threads benennen und überwachen
  • Synchronisierung mit Lock, RLock, Semaphore
  • Mini-Projekt: Zugriff auf gemeinsame Ressource absichern

Kapitel 4: Probleme mit Multithreading


  • Race Conditions
  • Deadlocks und deren Vermeidung
  • Debugging und Logging in Multi-Thread-Umgebungen
  • Mini-Projekt: Thread-Safe-Zähler

Kapitel 5: Die Global Interpreter Lock (GIL) verstehen


  • Was ist die GIL und warum gibt es sie?
  • Auswirkungen der GIL auf Threads
  • CPU-bound vs. IO-bound Tasks
  • Wann Multithreading trotz GIL sinnvoll ist

Kapitel 6: IO-bound Aufgaben mit Threads beschleunigen


  • Warten auf langsame Operationen (Netzwerk, Datei, API)
  • Vorteile durch Nebenläufigkeit
  • Mini-Projekt: Paralleles Herunterladen von Webseiten

Kapitel 7: CPU-bound Aufgaben und Alternativen


  • Warum Threads hier scheitern
  • Das multiprocessing-Modul als Lösung
  • Vergleich: threading vs. multiprocessing
  • Mini-Projekt: Primzahlenberechnung mit Prozessen

Kapitel 8: Thread-Pools mit concurrent.futures


  • Einführung in ThreadPoolExecutor
  • Tasks parallel starten und Ergebnisse einsammeln
  • Mini-Projekt: Bildverarbeitung mit Thread-Pool

Kapitel 9: Multithreading vs. Async – wann was nutzen?


  • Unterschiedliche Konzepte: Threads vs. Coroutines
  • Grenzen von threading, Vorteile von asyncio
  • Wann welches Werkzeug das richtige ist
  • Übersicht: Entscheidungsbaum für Parallelität

Kapitel 10: Best Practices und Sicherheit beim Threading


  • Thread-sicheren Code schreiben
  • Fehlerbehandlung in Threads
  • Tests und Debugging bei parallelem Code
  • Logging und Monitoring

Anhang A: Übersicht der wichtigsten Threading-Klassen und -Methoden


  • Thread, Lock, RLock, Semaphore, Condition, Event, Timer
  • Methoden wie start(), join(), is_alive(), acquire(), release()

Anhang B: Die GIL im Detail


  • Technischer Hintergrund
  • Verhalten in CPython vs. PyPy, Jython, etc.
  • Links und Ressourcen zur GIL-Diskussion

Anhang C: Übungsaufgaben mit Lösungen


  • Nebenläufige Downloads
  • Gemeinsame Datenstruktur mit Locks absichern
  • GIL-Verhalten beobachten mit CPU-bound vs. IO-bound Beispiel
  • Ausführlich kommentierte Lösungen


Sie erhalten die folgenden Dateien:
  • EPUB (112KB)
  • PDF (1MB)