Da li je Python dobar za istovremenost?
Da li je Python dobar za istovremenost?

Video: Da li je Python dobar za istovremenost?

Video: Da li je Python dobar za istovremenost?
Video: Nauči PYTHON za 10 minuta! 2024, Maj
Anonim

Python nije jako dobro za CPU-vezane istovremeno programiranje. GIL će (u mnogim slučajevima) učiniti da vaš program radi kao da radi na jednoj jezgri - ili još gore. Ako je vaša aplikacija vezana za I/O, Python može biti ozbiljno rješenje jer se GIL obično oslobađa prilikom blokiranja poziva.

Takođe morate znati da li Python podržava istovremenost?

Python radi imaju ugrađene biblioteke za najčešće istovremeno programske konstrukcije - višeprocesiranje i višenitnost. Razlog je višenitnost Python nije stvarno višenitno, zbog GIL-a Python.

Neko se takođe može zapitati, zašto višenitnost nije moguća u Pythonu? CPython interpreter (za čiste Python kod) će prisiliti GIL da se oslobodi svakih sto bajt kodnih instrukcija. Jednostavno dopušta da se samo jedna nit pokreće odjednom unutar interpretatora. Dakle, višeprocesna ne multithreading će vam omogućiti da postignete istinsku konkurentnost.

Nakon toga, postavlja se pitanje da li je Python dobar za multithreading?

Python ne dozvoljava multi-threading u pravom smislu te riječi. Ima a multi-threading paket ali ako želite multi-thread da ubrzate svoj kod, onda to obično nije a dobro ideja da se koristi. Python ima konstrukciju koja se zove Globalna brava tumača (GIL).

Koji modul se može koristiti za implementaciju konkurentnosti u Python 3?

The istovremeno . futures modul je dodat Python 3.2. Prema Python dokumentaciju pruža programeru interfejs visokog nivoa za asinhrono izvršavanje poziva koji se mogu pozivati.

Preporučuje se: