Is Python goed vir gelyktydigheid?
Is Python goed vir gelyktydigheid?

Video: Is Python goed vir gelyktydigheid?

Video: Is Python goed vir gelyktydigheid?
Video: HTML5 CSS3 JS 2022 | ECMAScript | Вынос Мозга 07 2024, Mei
Anonim

Python is nie baie nie goed vir SVE-gebonde gelyktydig Programmering. Die GIL sal (in baie gevalle) jou program laat loop asof dit op 'n enkele kern loop - of selfs erger. As jou aansoek I/O-gebonde is, Python kan 'n ernstige oplossing wees aangesien die GIL normaalweg vrygestel word terwyl u blokkeeroproepe doen.

Om ook te weet is, ondersteun Python gelyktydigheid?

Python doen het ingeboude biblioteke vir die mees algemene gelyktydig programmeringskonstrukte - multiverwerking en multithreading. Die rede is, multithreading in Python is nie regtig multithreading nie, as gevolg van die GIL in Python.

Mens kan ook vra, hoekom multithreading nie moontlik is in python nie? Die CPython-tolk (vir suiwer Python kode) sal die GIL dwing om elke honderd grepe-kode-instruksies vrygestel te word. Dit laat eenvoudig net een draad gelyktydig binne die tolk toe. Dus multiverwerking nie multithreading nie sal jou toelaat om ware gelyktydigheid te bereik.

Die vraag is dan, is Python goed vir multithreading?

Python toelaat nie multi-draad in die ware sin van die woord. Dit het 'n multi-draad pakket maar as jy wil multi-draad om jou kode te bespoedig, dan is dit gewoonlik nie 'n goed idee om dit te gebruik. Python het 'n konstruk genaamd die Global Interpreter Lock (GIL).

Watter module kan gebruik word om gelyktydigheid in Python 3 te implementeer?

Die gelyktydig . toekoms module is bygevoeg Python 3.2. Volgens die Python dokumentasie dit bied die ontwikkelaar 'n hoëvlak-koppelvlak vir asynchrone uitvoering van oproepbare items.

Aanbeveel: