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