Einkaufswagen
Loading
Nur noch -1 verfügbar

Asynchrone Programmierung in Python- Tiefe Einblicke in AsyncIO

Aktionspreis
€12.99 (25 % Rabatt)
€9.74
Zum Einkaufswagen hinzugefügt

Asynchrone Programmierung in Python: Tiefe Einblicke in AsyncIO


Ein praxisnaher Leitfaden zur parallelen und effizienten Ausführung von IO-bound Aufgaben mit dem AsyncIO-Framework


Inhaltsverzeichnis


Kapitel 1: Einführung in asynchrone Programmierung


  • Nebenläufigkeit vs. Parallelität: Begriffe und Abgrenzung
  • Warum asyncio? Wann ist es sinnvoll?
  • IO-bound vs. CPU-bound Aufgaben verstehen
  • Überblick über async/await, Event Loops und Coroutines

Kapitel 2: Grundlagen von AsyncIO


  • Die Event-Loop-Architektur
  • async def, await, run()
  • Was ist eine Coroutine?
  • Mini-Projekt: Simulierter Netzwerkaufruf mit Verzögerung

Kapitel 3: Tasks und Zeitsteuerung


  • asyncio.create_task(), await asyncio.sleep()
  • Tasks parallel planen
  • Unterschiede zwischen Coroutine und Task
  • Mini-Projekt: Gleichzeitige Webabfragen simulieren

Kapitel 4: Warten auf viele Aufgaben – gather, wait, as_completed


  • Mehrere Coroutines gleichzeitig ausführen
  • Rückgabeverhalten und Fehlerverhalten vergleichen
  • Zeitersparnis bei parallelen IO-Aufrufen
  • Mini-Projekt: Async-Datenabruf von mehreren URLs

Kapitel 5: Queues, Synchronisation und Kommunikation


  • asyncio.Queue für Produzent-Konsument-Szenarien
  • Locks, Events, Semaphores – asynchrone Kontrollstrukturen
  • Mini-Projekt: Download-Manager mit Queue und Limitierung

Kapitel 6: Exceptions, Timeout und Fehlerbehandlung


  • Exception-Handling in Coroutines
  • Timeout und Abbruch (asyncio.wait_for())
  • Fehlerverhalten bei gather() vs. Einzel-await
  • Mini-Projekt: Fehlertolerantes Task-System

Kapitel 7: Hintergrundaufgaben und asyncio.create_task()


  • Unterschiede zu await
  • Background Tasks starten und überwachen
  • Mini-Projekt: Periodische Datensynchronisierung im Hintergrund

Kapitel 8: Integration mit externen Bibliotheken


  • aiohttp, aiosqlite, aiomysql, asyncpg
  • HTTP-Requests, Datenbankabfragen asynchron durchführen
  • Mini-Projekt: Asynchrone API mit FastAPI und aiohttp kombinieren

Kapitel 9: Debugging und Performance


  • Event Loop analysieren
  • Langsame Tasks identifizieren
  • Tools: asyncio.get_running_loop(), loop.set_debug(True), tracemalloc
  • Mini-Projekt: Async-Profiler mit Logging-Mechanismus

Kapitel 10: Best Practices und Anti-Patterns


  • Wann asyncio, wann threading oder multiprocessing
  • Kein await in Libraries oder Konstruktorn
  • Common Pitfalls: Blocking Calls, Missing Awaits, Shared State
  • Mini-Projekt: Async-fähiger Service mit Logging und Struktur

Anhang A: Schnellreferenz für asyncio


  • Wichtige Funktionen und Klassen: run(), create_task(), gather(), Queue, wait(), sleep()

Anhang B: Übersicht nützlicher Async-Bibliotheken


  • aiohttp, aiosqlite, asyncpg, trio, anyio, FastAPI
  • Vergleich: asyncio vs. trio vs. twisted

Anhang C: Übungsaufgaben mit Lösungen


  • Parallele Aufgabenplanung
  • Task-Timeout und Fehlerhandling
  • Async Web-Downloader
  • Vollständig kommentierte Lösungen mit Performance-Tipps


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