Ist Python gut für die Parallelität?
Ist Python gut für die Parallelität?

Video: Ist Python gut für die Parallelität?

Video: Ist Python gut für die Parallelität?
Video: 🎓 | Einführung in die Informatik | S01E08 | Parallelität und Nebenläufigkeit 2024, November
Anonim

Python ist nicht sehr gut für CPU-gebunden gleichzeitig Programmierung. Die GIL lässt Ihr Programm (in vielen Fällen) so laufen, als würde es auf einem einzelnen Kern laufen - oder noch schlimmer. Wenn Ihre Anwendung I/O-gebunden ist, Python kann eine ernsthafte Lösung sein, da die GIL normalerweise beim Blockieren von Anrufen freigegeben wird.

Zu wissen ist auch, ob Python Parallelität unterstützt?

Python tut es haben eingebaute Bibliotheken für die gängigsten gleichzeitig Programmierkonstrukte - Multiprocessing und Multithreading. Der Grund ist, Multithreading in Python ist nicht wirklich Multithreading, aufgrund der GIL in Python.

Man kann sich auch fragen, warum Multithreading in Python nicht möglich ist. Der CPython-Interpreter (für pure Python code) erzwingt, dass die GIL alle hundert Byte-Code-Anweisungen freigegeben wird. Es erlaubt einfach nur, dass ein Thread gleichzeitig innerhalb des Interpreters ausgeführt wird. Also Multiprocessing kein Multithreading ermöglicht es Ihnen, echte Parallelität zu erreichen.

Anschließend stellt sich die Frage, ob Python für Multithreading geeignet ist.

Python erlaubt nicht Multithreading im wahrsten Sinne des Wortes. Es hat ein Multithreading Paket aber wenn du willst Multi Thread um deinen Code zu beschleunigen, dann ist es normalerweise kein gut Idee, es zu verwenden. Python hat ein Konstrukt namens Global Interpreter Lock (GIL).

Welches Modul kann verwendet werden, um Parallelität in Python 3 zu implementieren?

Die gleichzeitig . Futures Modul wurde hinzugefügt Python 3.2. Laut Python Dokumentation stellt es dem Entwickler eine High-Level-Schnittstelle zur asynchronen Ausführung von Callables zur Verfügung.

Empfohlen: