 پرسم اللہ الرحمن الرحیم آجہ موڈیول 164 دسکس کریں گے موڈیول 164 ہے رگارڈنگی API's for SRW's SRW's آپ نے دیکھا تھا slim read write constructs ہیں یہ کیوں پرفر بل ہیں اس لئے کیوں کہ یہ لائٹ ویٹ ہے بہت کم پروسیسنگ ریکوائر کرتے ہیں آگے سے کسی کسم کا API کنرل کا construct جو ہے اس کو نہیں use کرتے ہیں بہت کم پروسیسنگ کے اندر آپ لوگ کر سکتے ہیں اپنے objects کو اور اس کے لیوہ اس کے اندر dual modes ہیں ایک exclusive mode ہیں اور ایک sheared mode ہیں تو اگر آپ نے SRW's کو استعمال کرنا ہے Of course جس طرح کہ دوسرے constructs کو استعمال کرنے کے لئے آپ کیا use کرتے ہیں API's use کرتے ہیں تو SRW's کو استعمال کرنے کے لئے بھی set of API's اس کے ساتھ associated ہیں آپ ان API's کو call کر سکتے ہیں ان کی مدہ سے آپ SRW's کو access کر سکتے ہیں یہ API's کیا ہے ان کو دیکھتے ہیں سب سے پہلی یہ API ہے initialize SRW lock یہ ایک SRW lock کو initialize کرنے کے لئے use ہوگی یہاں پہ PSRW lock کی طائی پہ جو اس کو pass کی گئی ہے PSRW lock جو ہے that is pointed ہوا SRW lock دوسری API ہے acquire SRW lock sheared یہاں پہ آپ موڈ سپیسفائی نہیں کرتے ہیں بلکہ دونوں موڈس کے لئے علاقلے API جائیں یہاں پہلی API جو ہے یہ sheared موڈ کے لئے use ہوگی ہے acquire SRW lock sheared جو ہے یہ ایک SRW lock acquire کرے گی اور کن سے موڈ کے اندر acquire کرے گی sheared موڈ کے اندر acquire کرے گی تو اس sheared موڈ کے اندر اب اس نے acquire کیا تو اس کیس کے اندر کئی ساری thread جو ہے اس lock کو use کر سکیں گی اور sheared پیٹن پہ وہ اس کے اندر پڑاوہ دیتہ جو ہے اس کو access کر سکیں گی سمجھلرلی اس کی جو بلکہ انورس ہے API that is release SRW lock sheared اور sheared اس لی ہے کیونکہ یہ sheared موڈ میں ہوگا کئی ساری thread جو ہے at a time جو ہے انہوں نے اس lock کو acquire کیا گا اور پھر بعد میں اس lock کو release بھی کریں گی تو دوسرا ہم نے موڈ جو ہے وہ دیکھا تھا Exclusive mode ہے تو Exclusive mode کیلئے ایک نئی set of API's ہیں acquire SRW lock Exclusive اور release SRW lock Exclusive اس کے اس کے اندر acquire SRW lock Exclusive سے اگر آپ نے ایک SRW lock acquire کیا تو Exclusive mode کے اندر ہوگا جو Exclusive mode کے اندر ہوگا تو اگر ایک thread نے یہ lock acquire کیا ہوئے تو دوسی کوئی thread اس lock کو acquire نہیں کر سکے گی جب تک کہ یہ اس کو release نکھا دیتی release کرنے کے لئے یہ call کرے گا release SRW lock Exclusive ان تمام API's کے لعب ایک اور بھی API ہے جو کہ use ہوتی ہے for SRW locks وہ ہے sleep condition variable SRW یہ condition variables کے ساتھ یہ API use ہوگی جس کا کہ استمالم آگے جاکے کرنے گے SRW Exclusive mode اس کے ہمیں فائدہ جو ہم نے دیکھا ہے کہ اس کو Exclusive mode کے اندر بھی آپ use کر سکتے ہیں اور اس کو shared mode کے اندر بھی use کر سکتے ہیں جبکہ جو دوسرے API's constructs ہیں جیسے کہ critical section ہے اور mutex ہے ان دونوں کو آپ صرف Exclusive mode کے اندر استمال کر سکتے ہیں اس کو a shared mode میں استمال کرنے کا فہدہ ہے کہ اس سے کہ مزید optimization کی جا سکتے ہیں مزید overheads کو reduce کیا جا سکتے ہیں ایک تو اس کے light weight ہونے کی وجہ سے overheads کو reduce کیا جا رہا ہے اور دوسرے اس کے shared mode کی وجہ سے بھی آپ a certain amount of overheads جو ان کو reduce کر سکتے ہیں اگر ایک کوئی ایسی thread ہے جس نے صرف shared data کو read گنا تو اس کس میں آپ a shared mode کے اندر srw lock get کریں گے جب آپ کو کنفرم ہوگا کہ اس نے اس دیتا کو change کرنا دیتا ہے جو share ہو رہا among different threads لیکن آپ کی ایک thread ہے جس نے صرف اس دیتا کو read گنا اور وہ دیتا کسی اور thread نے write گنا جو write کرنے والی threads ہیں وہ اس کو Exclusive mode کے اندر use کریں گی لیکن جو read کرنے والی thread ہے وہ اس کو shared mode کے اندر access کرے گی share mode کے اندر جو اس کو access کریں ان کو کیا advantage ہے ان کو wait نہیں کرنا پڑے گا جب ساری write کرنے والی thread اس کو write کرنے تو تب اس کو وہ resource available تو اس کو وہ data available تو ان کا wait time ہے وہ reduce ہو جائے گا optimization جو ہے وہ اس طرح سے increase ہو جائے گی اور of course دوسرہ جو اس کا advantage ہے وہ یہ کیونکہ یہ lightweight ہے تو اس کو invoke کرنے کے لیے اس کی API اس کو use کرنے کے لیے جو overheads وہ بھی بہت minimal ہے