علاش ماكانش التشغيل متعدد الخيوط يسرع شي كود بايثون ديالي؟ كيفاش يمكن لي نصلحها؟
بايثون تقيد الوصول إلى المترجم مع قفل المترجم العالمي، والذي يشار إليه باسم GIL، لمتطلبات الأمان الداخلية للخيط. لسوء الحظ، هذا القرار التصميمي يقيد فقط يسمح لخيط واحد لترجمة رمز بايثون في وقت واحد، حتى على آلة قادرة على تشغيل عدة خيوط معًا.  إذا كنت ترغب في تشغيل رمز بايثون على مجموعة من البيانات، ويمكن تقسيم البيانات إلى شرائح مستقلة (عملية تعرف باسم تقسيم البيانات) ، فقد ترغب في النظر في مكتبة المعالجة المتعددة في بايثون.  على سبيل المثال، فكر في الدالة foo التي تأخذ دليل واحد، arg1، وقول أنك تريد تشغيل الدالة foo على عدد من القيم، على سبيل المثال، val1، val2، و val3.  def foo(arg1): # ندير شي حاجة  if __name__ == '__main__': فوفال فوفال (فووال3)  وبالنسبة لـ foo، يمكن ليك تستخدم مجموعة المعالجة المتعددة لتشغيل العديد من العمليات العاملة معًا:  من مجموعة الاستيراد المتعددة المعالجة  def foo(arg1): # ندير شي حاجة  if __name__ == '__main__': p = المجموعة p.map(foo، [val1, val2, val3])  كما توفر مكتبة المعالجة المتعددة واجهات برمجة التطبيقات المختلفة الأخرى للبرمجة المتوازية. واش تبغي تعرف المزيد؟