Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Einführung in die Nebenläufigkeit | Multithreading vs. Multiprocessing
Python Fortgeschrittene Konzepte

Einführung in die Nebenläufigkeit

Swipe um das Menü anzuzeigen

Nebenläufigkeit und Parallelität sind Begriffe, die oft synonym verwendet werden, jedoch unterschiedliche Ansätze zur Bearbeitung mehrerer Aufgaben beschreiben. Nebenläufigkeit bezeichnet die Fähigkeit eines Programms, mehrere Aufgaben gleichzeitig zu verwalten, wobei diese nicht zwingend gleichzeitig ausgeführt werden. Stattdessen wechseln sich die Aufgaben schnell ab und nutzen dabei dieselben Ressourcen, wie beispielsweise einen einzelnen CPU-Kern. Dies ist besonders nützlich für Programme, die Zeit mit Warten auf Ein-/Ausgabe-Operationen (I/O) verbringen, etwa beim Lesen von Dateien oder Netzwerkverbindungen.

Parallelität hingegen bedeutet, dass tatsächlich mehrere Aufgaben exakt zur gleichen Zeit ausgeführt werden. Dies ist möglich, wenn mehr als ein CPU-Kern zur Verfügung steht, sodass Aufgaben wirklich parallel verarbeitet werden können. Parallelität ist besonders wichtig für CPU-bound-Aufgaben, die durch die Geschwindigkeit des Prozessors begrenzt sind, wie etwa komplexe Berechnungen.

Das Verständnis des Unterschieds zwischen CPU-bound- und I/O-bound-Aufgaben hilft bei der Wahl des richtigen Ansatzes. CPU-bound-Aufgaben werden durch die Rechengeschwindigkeit limitiert, während I/O-bound-Aufgaben den Großteil ihrer Zeit mit dem Warten auf externe Vorgänge verbringen, wie Festplattenzugriffe oder Netzwerkantworten. In Python wird Nebenläufigkeit häufig mit Threads umgesetzt, die leichtgewichtig sind und bei I/O-bound-Aufgaben helfen können. Für CPU-bound-Aufgaben ist Multiprocessing, das separate Prozesse verwendet, effektiver, da Threads in Python durch den Global Interpreter Lock (GIL) eingeschränkt sind.

Wie im Video gezeigt, hängt die Wahl zwischen Nebenläufigkeit und Parallelität von der Art der Arbeitslast Ihres Programms ab. Wenn Ihre Aufgaben auf I/O warten, kann Nebenläufigkeit mit Threads die Effizienz steigern. Wenn Ihre Aufgaben viel Rechenleistung benötigen, hilft Parallelität mit mehreren Prozessen, die Hardware optimal zu nutzen.

question mark

Welche Aussage beschreibt am besten den Unterschied zwischen Nebenläufigkeit und Parallelität in Python?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 3. Kapitel 1
some-alt