 بسم اللہ الرحمن الرحیم آج ہم موڈیول 129 دسکس کریں گے موڈیول 129 ہے about fiber API's پریویس لی ہم نے fibers کو دسکس کیا تھا اب of course ہم برنڈوز کے اندر جو بھی کام اکمپلش کرنا جاتے ہیں اس کے لیے ہمارے پاس different set of API's ہوتے ہیں تو fibers کو کنٹرول کرنے کے لیے بھی ہمارے پاس ایک سرٹن set of API's موجود ہیں تو یہ مختلف قسم کے function ہیں جو سوچنگ کے لیے کریڈ کرنے کے لیے ڈلیٹ کرنے کے لیے مختلف operations fibers کے اوپر پر پرفوم کرنے کے لیے یہ API's use ہوں گی تو انہیں API's کو باری باری کر کے ہم دیکھتے ہیں سب سے پہلے اگر آپ کے پاس ایک thread ہے آپ نے اس thread کے اندر fibers کرنے ہیں تو اس thread کو fiber میں convert کرنا پڑائے گا اس thread کو fiber میں convert کرنے کے لیے جو API آپ کے پاس available ہے وہ convert thread to fiber یا پھر convert thread to fiber ex یہ دو API's میں سے کسی کی بھی مدد سے آپ ایک current thread کو fiber میں convert کر سکتے ہیں once آپ کے پاس یہ convert ہوکے thread fiber میں آ جاتی ہے اب آپ اس primary as a primary fiber کام کرے گی جس آپ previous cases میں بھی ہم نے دیکھتا تھا ایک primary thread ہوتی ہے اور بعد میں اور دوسری threads آپ کریئٹ کرتے ہیں یہ ایک primary thread کے طور پر کام کرے گی اور اس کی مدد سے پھر ہم اور مزید threads کریئٹ کر سکتے ہیں جب آپ اس API کی مدد سے thread کو fiber میں convert کرتے ہیں تو آپ کے پاس return میں آپ کے پاس ایک data structure آئے گا اس data structure کے اندر fiber کا data ہوگا جس کو کہ آپ access کر سکیں گے اور پھر of course اپنی جو بھی آپ نے programming logic ہے اس کے اندر اس data کے اوپر جو بھی operations آپ نے perform کرنے وہ کر سکتے ہیں اب once آپ کے پاس primary fiber آگیا تو اب آپ مزید subsequent جو fibers ہیں ان کو create کرنے کے لیے create fiber کا استعمال کریں گے تو جو بھی ایک fiber بنے گا اس کو کیسے identify کیا جاتا ہے اس کو handle کی مدد سے نہیں identify کیا جاتا ہے یہ یہاں پہ دیحان رکھنے کی ضرورت ہے باقی ہم نے ابھی دک جتنے بھی اس طرح کی resources ہیں ان کو دیکھا ہے کہ یہاں ہم ان کو handle کی مدد سے access کرتے ہیں لیکن یہ fiber جو ہے اس کو address کی مدد سے جو بھی اس کا starting address ہوتا ہے اس کی مدد سے access کیا جاتا ہے اس کے لیوہا اس fiber کے اندر کچھ stack ہوگی اور ایک parameter ہوگا جو کہ آپ create fiber کے اندر specify کر سکتے ہیں پھر once آپ کے پاس ایک fiber اگر run ہو رہی ہے تو fiber اپنی execution کے دوران جو بھی اس کا data اس کو ایک API ہے get fiber data get fiber data کی مدد سے اپنے data کو وہ access کر سکتی ہے اور سمرہلی وہ اپنی identity کو اپنے address کو ایک اور API ہے get current fiber get current fiber کی مدد سے access کر سکتی ہے دوران execution ایک fiber اگر data کو access کرنا چاہتی ہے یا اپنی identity دیکھنا چاہتی ہے تو اس کے لیے آپ کے پاس یہ دو API's ہیں get fiber data اور get current fiber اگر ایک fiber run کر رہی ہے اور ہم نے کیوں کے بعد کیا ہے کہ switching fiber کی case میں کیا ہوگی وہ application کی مرزی سے ہو سکتی ہے application جب بھی چاہے switch کر کے execution دوسرے fiber کے اپنے transfer کر سکتے ہیں اور پھر وہ fiber آگے کسی اور fiber کو transfer کر سکتے ہیں ایک fiber سے دوسرے fiber کے اپنے switching جو ہے اس کو application خود control کر رہی ہے where as in case of thread جو switching ہے اس کے اوپر application کا کوئی control نہیں ہے اس کو upgrading system پر فرم کر رہا ہے تو switch کرنے کے لیے آپ کے پاس API available ہے switch to fiber آپ اس کو address specify کرتے ہیں fiber کا جس fiber کا آپ نے address specify کیا ہے جو current fiber ہے اس کا context جو ہے وہ save ہو جائے گا اور جس کا آپ نے address specify کیا ہے اس کا context ہے وہ restore ہو جائے گا یعنی کہ execution جو ہے جو بھی آپ نے address specify کیا ہے اس fiber کے اوپر transfer ہو جائے گی اس fiber کی execution start ہو جائے گی اسی طرح سے اگر ایک آپ کو fiber کی ضرورت نہیں پڑتی رہتی تو آپ اس fiber کو ختم بھی کر سکتے ہیں اس کے لیے آپ delete fiber simple capi ہے this delete fiber کی مدر سے آپ اس کو address specify کریں اس fiber کا اور وہ جو fiber ہے وہ delete ہو جائے گا اس کے لیے جو resources ہے اور deallocate ہو جائے گا