Je Python dober za sočasnost?
Je Python dober za sočasnost?

Video: Je Python dober za sočasnost?

Video: Je Python dober za sočasnost?
Video: 5 Reasons Why You Should Use Type Hints In Python 2024, Maj
Anonim

Python ni zelo dobro za CPU vezan sočasno programiranje. GIL bo (v mnogih primerih) poskrbel, da bo vaš program deloval, kot da bi se izvajal na enem jedru - ali še slabše. Če je vaša aplikacija vezana na V/I, Python je lahko resna rešitev, saj se GIL običajno sprosti med blokiranjem klicev.

Prav tako morate vedeti, ali Python podpira sočasnost?

Python ima imajo vgrajene knjižnice za najpogostejše sočasno programske konstrukcije - večprocesiranje in večnitno. Razlog je večnitnost v Python ni v resnici večniten zaradi GIL v Python.

Lahko se tudi vprašamo, zakaj večnitnost ni mogoča v pythonu? Tolmač CPython (za pure Python koda) bo prisilila, da se GIL sprosti vsakih sto bajtnih kodnih navodil. Preprosto omogoča, da se v tolmaču izvaja samo ena nit hkrati. Torej večprocesna ne večnitno vam bo omogočilo, da dosežete pravo sočasnost.

Kasneje se postavlja vprašanje, ali je Python dober za večnitnost?

Python ne dovoljuje večnitno v pravem pomenu besede. Ima a večnitno paket, če pa želite večnit da pospešite svojo kodo, potem običajno ni a dobro ideja za uporabo. Python ima konstrukcijo, imenovano Global Interpreter Lock (GIL).

Kateri modul je mogoče uporabiti za implementacijo sočasnosti v Pythonu 3?

The sočasno . prihodnosti modul je bil dodan Python 3.2. Glede na Python dokumentacijo razvijalcu zagotavlja vmesnik na visoki ravni za asinhrono izvajanje klicev.

Priporočena: