Արդյո՞ք Python-ը լավ է միաժամանակության համար:
Արդյո՞ք Python-ը լավ է միաժամանակության համար:

Video: Արդյո՞ք Python-ը լավ է միաժամանակության համար:

Video: Արդյո՞ք Python-ը լավ է միաժամանակության համար:
Video: Python ԴԱՍ 0: Ի՞նչ է ծրագրավորումը և ինչու՞ սովորել Python 2024, Մայիս
Anonim

Պիթոն շատ չէ լավ CPU-ով կապված մրցակից ծրագրավորում։ GIL-ը (շատ դեպքերում) կստիպի ձեր ծրագիրը գործարկել այնպես, կարծես այն աշխատում է մեկ միջուկի վրա, կամ նույնիսկ ավելի վատ: Եթե ձեր դիմումը I/O-կապված է, Պիթոն կարող է լուրջ լուծում լինել, քանի որ GIL-ը սովորաբար ազատվում է զանգերի արգելափակման ժամանակ:

Նաև պետք է իմանալ, արդյոք Python-ն աջակցում է համաժամանակությանը:

Python-ն անում է ունեն ներկառուցված գրադարաններ ամենատարածվածների համար մրցակից ծրագրավորման կոնստրուկցիաներ՝ բազմամշակում և բազմաթելային: Պատճառը բազմաթելային ներթափանցումն է Պիթոն իրականում բազմաթելային չէ՝ GIL-ի պատճառով Պիթոն.

Կարելի է նաև հարցնել՝ ինչու՞ բազմաթելային հնարավոր չէ python-ում: CPython թարգմանիչը (մաքուր Պիթոն կոդը) կստիպի GIL-ին թողարկել յուրաքանչյուր հարյուր բայթ կոդի հրահանգը: Այն պարզապես թույլ է տալիս միայն մեկ շարանը միանգամից գործարկել թարգմանչի ներսում: Այսպիսով, բազմամշակում ոչ բազմաթելային թույլ կտա հասնել իրական համաժամանակության:

Հետագայում հարց է ծագում, արդյոք Python-ը լավ է բազմաթելերի համար:

Պիթոն թույլ չի տալիս բազմաթելային բառիս բուն իմաստով. Այն ունի ա բազմաթելային փաթեթ, բայց եթե ուզում ես բազմաշերտ ձեր կոդը արագացնելու համար, ապա դա սովորաբար a լավ այն օգտագործելու գաղափարը: Պիթոն ունի կառուցվածք, որը կոչվում է Գլոբալ թարգմանիչ կողպեք (GIL):

Ո՞ր մոդուլը կարող է օգտագործվել Python 3-ում միաժամանակության իրականացման համար:

Այն մրցակից . ֆյուչերսներ մոդուլ ավելացվել է Պիթոն 3.2. Ըստ Պիթոն փաստաթղթեր, այն մշակողին տրամադրում է բարձր մակարդակի ինտերֆեյս՝ կանչելիները ասինխրոն կերպով գործարկելու համար:

Խորհուրդ ենք տալիս: