ملٹی تھریڈنگ میرے ازگر کوڈ کو تیز کیوں نہیں بنا رہی ہے؟ میں اسے کیسے ٹھیک کر سکتا ہوں۔
-
Python اندرونی تھریڈ سیفٹی کے تقاضوں کے لیے گلوبل انٹرپریٹر لاک کے ساتھ ترجمان تک رسائی کو محدود کرتا ہے، جسے GIL کہا جاتا ہے۔ بدقسمتی سے، اس ڈیزائن کے فیصلے پر پابندی صرف ایک تھریڈ کو ایک وقت میں Python کوڈ کی ترجمانی کرنے کی اجازت دیتی ہے، یہاں تک کہ ایک مشین پر بھی جو ایک ساتھ ایک سے زیادہ تھریڈز چلانے کی صلاحیت رکھتی ہے۔   اگر آپ ڈیٹا کے سیٹ پر Python کوڈ چلانا چاہتے ہیں، اور ڈیٹا کو آزاد حصوں میں تقسیم کیا جا سکتا ہے (ایک عمل جسے ڈیٹا پارٹیشننگ کہا جاتا ہے)، تو آپ Python میں ملٹی پروسیسنگ لائبریری کو دیکھنا چاہیں گے۔   مثال کے طور پر، فنکشن foo پر غور کریں جو ایک دلیل لیتا ہے، arg1، اور کہیں کہ آپ foo فنکشن کو متعدد ویلیوز پر چلانا چاہتے ہیں، کہتے ہیں، val1، val2، اور val3۔   def foo(arg1):  # کچھ کریں   اگر __name__ == '__main__':  foo(val1)  foo(val2)  foo(val3)   foo ایک ساتھ ایک سے زیادہ پروسیس پر عمل کرنے کے لیے، آپ ملٹی پروسیسنگ پول کا استعمال کر سکتے ہیں ایک ساتھ کئی ورکر پروسیس کو چلانے کے لیے :   ملٹی پروسیسنگ امپورٹ پول   def foo(arg1):  # do something   if __name__ == '__main__':  p = Pool()  p.map(foo, [val1, val2, val3])   ملٹی پروسیسنگ لائبریری اس کے لیے مختلف دیگر APIs بھی فراہم کرتی ہے۔ متوازی پروگرامنگ کیا آپ مزید جاننا چاہیں گے؟