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