Python parallellik uchun yaxshimi?
Python parallellik uchun yaxshimi?

Video: Python parallellik uchun yaxshimi?

Video: Python parallellik uchun yaxshimi?
Video: Transformatorlarni parallel ishlashini tekshirish 2024, May
Anonim

Python unchalik emas yaxshi CPU bilan bog'langan uchun bir vaqtda dasturlash. GIL (ko'p hollarda) dasturingizni xuddi bitta yadroda ishlayotgandek yoki undan ham battarroq ishlaydi. Agar arizangiz I/O-ga bog'langan bo'lsa, Python Bu jiddiy yechim bo'lishi mumkin, chunki GIL odatda qo'ng'iroqlarni blokirovka qilishda chiqariladi.

Shuni ham bilish kerakki, Python parallellikni qo'llab-quvvatlaydimi?

Python qiladi eng keng tarqalganlari uchun o'rnatilgan kutubxonalarga ega bir vaqtda dasturlash konstruksiyalari - multiprocessing va multithreading. Sababi, ko'p qirrali Python GIL tufayli, aslida ko'p ish zarralari emas Python.

Bundan tashqari, nima uchun pythonda multithreading mumkin emas deb so'rash mumkin? CPython tarjimoni (sof uchun Python kod) GILni har yuz bayt kodli ko'rsatmalarni chiqarishga majbur qiladi. Bu shunchaki tarjimon ichida bir vaqtning o'zida faqat bitta ipning ishlashiga imkon beradi. Shunday qilib, ko'p ishlov berish ko'p tarmoqli emas haqiqiy parallellikka erishishga imkon beradi.

Keyinchalik savol tug'iladi: Python ko'p ish zarralari uchun yaxshimi?

Python ruxsat bermaydi ko'p tarmoqli so'zning to'liq ma'nosida. U bor ko'p tarmoqli paket, lekin agar xohlasangiz ko'p ipli kodingizni tezlashtirish uchun, keyin odatda a emas yaxshi undan foydalanish fikri. Python Global Interpreter Lock (GIL) deb nomlangan konstruksiyaga ega.

Python 3 da parallellikni amalga oshirish uchun qaysi moduldan foydalanish mumkin?

The bir vaqtda . fyucherslar modul ichiga qo'shildi Python 3.2. ga ko'ra Python Hujjatlar u ishlab chiquvchiga qo'ng'iroq qilinadigan narsalarni asinxron tarzda bajarish uchun yuqori darajadagi interfeys bilan ta'minlaydi.

Tavsiya: