Kas Python on samaaegsuse jaoks hea?
Kas Python on samaaegsuse jaoks hea?

Video: Kas Python on samaaegsuse jaoks hea?

Video: Kas Python on samaaegsuse jaoks hea?
Video: Java On Conference 2022, JDK 19, Spring Framework 6 и Spring Boot 3 [Новости MJC #11] 2024, November
Anonim

Python ei ole väga hea protsessoriga seotud samaaegne programmeerimine. GIL paneb (paljudel juhtudel) teie programmi töötama nii, nagu töötaks see ühel tuumal – või veelgi hullem. Kui teie taotlus on seotud I/O-ga, Python võib olla tõsine lahendus, kuna GIL vabastatakse tavaliselt kõnede blokeerimise ajal.

Samuti tuleks teada, kas Python toetab samaaegsust?

Python teeb on sisseehitatud teegid kõige levinumate jaoks samaaegne programmeerimiskonstruktsioonid - multitöötlus ja mitme lõimega töötlemine. Põhjus on mitme lõimega sisestamises Python ei ole GIL-i sisendi tõttu tegelikult mitmelõimeline Python.

Võib ka küsida, miks ei ole pythonis multithreading võimalik? CPythoni tõlk (puhta Python kood) sunnib GIL-i vabastama iga sajabaidise koodijuhiste järel. See võimaldab tõlgis korraga ainult ühte lõime joosta. Nii et multitöötlus mitte mitmelõimeline võimaldab teil saavutada tõelise samaaegsuse.

Seejärel tekib küsimus, kas Python sobib mitme lõimega töötlemiseks?

Python ei luba mitme keermega selle sõna otseses mõttes. Sellel on mitme keermega pakett aga kui tahad mitme lõimega koodi kiirendamiseks ei ole see tavaliselt a hea idee seda kasutada. Python omab konstruktsiooni nimega Global Interpreter Lock (GIL).

Millist moodulit saab Python 3-s samaaegsuse juurutamiseks kasutada?

The samaaegne . futuurid moodul lisati sisse Python 3.2. Vastavalt Python dokumentatsioon annab arendajale kõrgetasemelise liidese helistatavate funktsioonide asünkroonseks täitmiseks.

Soovitan: