 بسم اللہ الرحمن الرحیم آج ہم موڈیول 119 دسکس کریں گے موڈیول 119 ہے بوس ورکر اور ادھر ٹھرڈ موڈلز ہم نے پیویس لیے ایک ایک اجامبل برای تھی جس کے اندر کے کئی سارے ٹھرڈ سے ران کرتے تھے ایک مین آپ کا ٹھرڈ ہے جو مین پوگرام ہے وہ آگے کئی ساری ٹھرڈ کو ران کرتا ہے اور ہر ٹھرڈ کو ایک فائل مل جاتی ہے وہ اس فائل کے اندر اپنی ورکنگ شروع کر دیتا ہے اور ایک پیٹن کو سرچ کرنا شروع کر دیتا ہے تو یہ والا جو موڈل ہے یہ موڈل اور لیس لائی کا بوس ورکر موڈل ہے بوس ورکر موڈل کے اندر کیا ہوتا ہے کہ ایک بوس ہوتا اور کئی سارے ورکر ہوتے ہیں بوس جو ہے ان ورکرز کو اپنا کام بتا دیتا ہے کہ تم نہیں یہ کرنا یہ کرنا اس کام کو ان ورکرز کے بیچ میں ڈوائیٹ کر دیتا ہے اور جب بھی ان کے پاس کوئی رزلٹ آتا ہے تو وہ بوس کو رپورٹ کر دیتے ہیں اس کو بتا دیتے ہیں کہ اچھا ہمارے پاس یہ رزلٹ آ گیا ہمارے پاس ہر ورکر جو ہے وہ پھر واپس بوس کو رپورٹ کر رہا ہے تو وہ والا جو موڈل ہم نے پریویسلی دیسکرز کیا تھا وہ بھی اسی طرح کی موڈل تھا بوس ورکر موڈل تھا ایک مین ٹھرڈ تھی اور جو دوسی ٹھرڈ کو ران کرتی تھے اور دوسی ٹھرڈ کو جب بھی کوئی پاتن ملتا تھا تو وہ بوس کو انفرمیشن پاس کر دیتا تھا بوس اس کو دیسپلے کر دیتا تھا اور صرف یہی ایک موڈل نہیں exist کرتا اس طرح کہ کئی سارے موڈلز exist کرتے ہیں جو ہم نے ٹھرڈز کو use کرنا ہے تو آپ ان میں سے کسی موڈل کو اپنی پروبرم کے مطابق جو ہے ڈابٹ کر سکتے ہیں ان کو use کر سکتے ہیں اور یہ بڑے اچھے well defined موڈلز ہیں ان کا استعمال کرنا جو ہے ایک useful programming practice ہے بیسے تو آپ چاہیں ٹھرڈنگو جس طریقے مرزی سے استعمال کریں ایکن اگر موڈلز کو use کرتے ہوئے اگر آپ ٹھرڈنگ کرتے ہیں تو آپ کی یعنی کہ زادہ خوبصورت کسم کی programming ہوگی صاف کسم کی programming ہوگی more readable ہوگی more understandable ہوگی دوسرا ایک اور موڈل جو ہے work review موڈل ہے تو اس کے اندر کیا ہوتا ہے اس کے اندر کئی سارے workers ہوتا ہے یعنی کہ کئی ساری threats ہیں اور وہ آپس میں ہی cooperate کریں اور آپس میں ایک دوسر کو work divide کریں آپس میں یہ work divide کر لاتے ہیں کہ اگر کئی سارا کام ہے ایک file ہے اور اس file کے اندر بہت سارا دیتا ہے تو آپس میں وہ کچھ work divide کرنے گے کہ اتنے bite سے لے کے اتنے bite تک اس threat نے کام کرنا ہے اتنے bite سے لے کے اتنے bite تک اس threat نے کام کرنا ہے and so on work کو آپس میں divide کرنے گے اور پھر اس سارے work کو synchronize کریں گے اور اس طرح ڈویین کر کے وہ work جو ہے اپنا perform کریں گے یہ بالکل جس طرح ہماری کوئی بھی ایک organization of humans کی جس طرح ہماری کوئی بھی ایک company ہے اس کے اندر ایک manager ہے اور وہ manager جو ہے اس کے اندر کام کرنے والے اس کے spottenate جو ہے ان کے بیچ میں کام کو divide کر داتا ہے اور ان سے کام لیتا ہے اس طرح کوئی بھی ایک organization کی حرار کی ہوتی ہے اس حرار کی کوئی use کر کے اس طرح کا کوئی model بنائے جا سکتا اور بھی کچھ models ہیں ایک اور model جو ہے a client server model ہے a client server model تو بہت commonly used or world wide شاید سب سب دہاں model use ہوتا وہ client server model ہے اس کے اندر کیا ہوتا ہے کہ یہ ایک server ہے آپ server کو request بھیتے ہیں جو ہی request بھیتے ہیں اس request کے لیے ایک thread ران ہو جاتی ہے وہ thread اس request کو پوری کرا ہے اس دران اگر کوئی اور client آ جاتے ہیں تو اس کے لیے ایک اور thread ران ہو جائے گی را در than کے کام sequentially ہوں کام concurrent لیوتے اور جتنے بھی clients آرے ہرے کی جو request ہے اس کے لیے thread run ہوتی جائے گی جتنی request آئی ہیں اتنی threads run ہوتی جائیں گی so server end کے اوپر ہر request کے against ایک thread run ہوگی جسے کے client کو رپلائے ملے گا اور اسی طرح سے ایک اور pipeline model ہے pipeline model کے اندر یہ ہے کہ ایک thread نے اپنا operation پر فام کر کے اگلی thread کو پاس کر دیا جو pipeline کا concept ہے اس concept کے according لی جو work ہے وہ threads کے بیچ میں ڈوائیڈ ہو جاتا اور اس طرح سے well known models ان کو use کرنے کے ہمیں کئی advantages نظر آتے اگر ہم اپنے طریقے سے threads کو use کرنا چاہئے تو ہو سکتا ہم بڑا ایک complicated some model بنالیں اور بعد میں اس کی خودی سمجھ بنائے کہ control کہاں سے کہاں جا رہا ہے اور کیسے operations پر فام ہو رہے تو اس طرح سے well known model ہیں جس طرح boss worker model ہے worker crew model ہے pipeline model ہے اس طرح کے model ہم اپنی جو problem ہے اس problem کو in models کے اوپر ماب کرنے گے کوشش کریں اور in models کو use کر کے ہم اپنی problem کا جو solution ہے وہ device کریں تو وہ ایک اچھی clean کیسم کی کہاں لیں کہ آفرٹ ہوگی اس طرح کہ model use کرنے سے کیا ہو جاتا ہے آپ کو پتا ہوتا ہے کہ model نے کیس طرح سے work کرنا تو آپ ایک clean طریقے سے ایک well known طریقے سے threads کا استعمال کرتے ہیں اس طرح سے آپ کی programming بھی سان ہو جاتی ہے اور programming کو Debug کرنا آپ کی expectation آپ کو پتا ہوتا ہے کہ آپ نے کیا چیز expect کرنی ہے تو آپ کو پتا ہے کیا چیز expect کرنی ہے تو اس طرح سے پھر آپ کی debugging بھی استعمال آسان ہو جاتی ہے پھر جو common mistakes ہوتی ہیں threading کے اندر threading کے اندر اگر کوئی آپ mistake کر دیتے ہیں programmatic error کرتے ہیں تو اس کو پکرنا کبھی کبھی بہتی مشکل ہو جاتا ہے تو جونکہ یہ well known model ہوتے ہیں تو اس کے اندر کو اس طرح کیا اگر mistake ہوتی ہے اس کی understanding better ہوتی ہے تو جیسے اس mistake کو پکرنا identify کرنا جو ہے وہ آسان ہے اور جو programming language کے constructs ہیں تو یہ models عام طوپ پر programming language کیونکہ ہرارکی کل کچھ models ہیں انس کے اندر وہ programming language کے constructs کو correspond کرتے ہیں اور ایسے correspondence والے models کو use کر کے آپ کی جو programming ہے وہ بھی کافی حتک بڑی آسان ہو جاتی ہے maintenance آسان ہو جاتی ہے کیونکہ آپ ایک model کیوپر وہ based ہے اس model کو بڑے clear card طریقے سے understand کرتے ہیں آپ کو logic سارہ پھر سے سمجھ نہیں پڑھتا آپ کو model کا پتا ہوتا ہے model نے کیسے بہت کرنا اس لیے آپ expect کرتے ہیں کہ code کیا کرے گی اور پھر اس طرح سے اس code کو change کرنا اور اس code کو understand کرنا جو ہے بڑا آسان ہو جاتا ہے troubleshooting آسان ہو جاتی ہے synchronization جو ہوتی ہے ایک بڑا important concept ہے threading کو use کرتے ہیں کہ آپ کو synchronize کرنے کی ضرورتی ہے ایک pattern operation آپ جاتے ہیں کہ ایک previous operation کے بعدی perform تو ان کو synchronize کرنے کی ضرورتی ہے تو synchronization کے لیے بھی جب وہ model ہے تو model پتا رہا ہوتا ہے کہ کس point کیوپر synchronization کی ضرورت ہے تو اس کو synchronize کرنا جو ہے وہ بھی آسان ہو جاتا ہے اس کو understand کرنا بھی آسان ہو جاتا ہے