-
اعتراض جون سڀ حالتون ڇا آهن
Thread
؟- نئون
- هلڻ لائق
- بلاڪ ٿيل
- انتظار ڪرڻ
- TIMED_WAITING
- ختم ٿيل
-
بلاڪ ۾ داخل ٿيڻ وقت ڪھڙين رياستن ۾ ٿريڊ وڃي سگھي ٿو
synchronized
؟- هلڻ لائق
- بلاڪ ٿيل
RUNNABLE ۾، جيڪڏهن ڪوڊ جو بلاڪ نشان لڳل آهي
synchronized
ته ڪنهن ٻئي موضوع تي قبضو نه ڪيو ويو آهي. ٻي صورت ۾، اسان جي سلسلي کي BLOCKED حالت ملي ويندي ۽ ميوٽڪس اعتراض جاري ٿيڻ جو انتظار ڪندو. - طريقي کي سڏڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندو
wait()
؟هن طريقي کي سڏڻ سان ٿريڊ کي WAITING حالت ۾ رکي ٿو.
اهو طريقوwait()
صرف هڪ بلاڪ جي اندر هڪ ميوٽڪس اعتراض تي سڏي سگهجي ٿوsynchronized
جيڪو موجوده سلسلي طرفان "لاڪ" ڪيو ويو آهي، ٻي صورت ۾ اهو طريقو هڪ غير قانوني مانيٽر اسٽيٽ ايڪسپشن استثنا اڇلائي ڇڏيندو .Object monitor = getMonitor(); synchronized(monitor) { … monitor.wait(); … }
جڏهن هڪ طريقو سڏيو ويندو آهيwait()
، موجوده ٿريڊ شئي مان لاڪ جاري ڪري ٿوmonitor
۽ انتظار جي حالت ۾ داخل ٿئي ٿو، طريقي جي انتظار ۾ ٻئي سلسليmonitor.notify()
طرفان سڏيو وڃي ٿو.monitor.notifyAll()
جيئن ئي ائين ٿئي ٿو، موضوع جاڳندو ۽ جيڪڏهن مانيٽر مصروف نه هو، اهو ان کي پڪڙيندو ۽ ڪم جاري رکندو.
جيڪڏهن مانيٽر ڪنهن ٻئي سلسلي تي قبضو ڪيو ويو آهي، موجوده ڌاڳو بلاڪ ٿيل رياست ۾ ويندو. -
طريقي کي سڏڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندو
ھن طريقي کي سڏڻ سان ٿريڊ کي TIMED_WAITING حالت ۾ رکي ٿو.wait(500)
؟
طريقي سان قياس ڪنديwait()
،wait(timeout)
ان کي صرف هڪ بلاڪ جي اندر سڏي سگهجي ٿوsynchronized
هڪ ميوٽڪس اعتراض تي جيڪو موجوده ٿريڊ طرفان "لاڪ (بند)" ڪيو ويو آهي.Object monitor = getMonitor(); synchronized(monitor) { … monitor.wait(500); … }
جڏهن طريقي کي سڏيندي
wait()
، موجوده ڌاڳو اعتراض مان تالا جاري ڪري ٿوmonitor
۽ 500 ملي سيڪنڊن لاء ننڊ ۾ وڃي ٿو. شئيmonitor
ٿي سگھي ٿي ڪنھن ٻئي سلسلي سان پڪڙي.
500 ملي سيڪنڊن کان پوءِ، ٿريڊ اٿندو ۽ جيڪڏھنmonitor
اھو مصروف نه ھو، ته اھو ان کي پڪڙيندو ۽ ڪم جاري رکندو.
جيڪڏهن مانيٽر ڪنهن ٻئي سلسلي تي قبضو ڪيو ويو آهي، موجوده ڌاڳو بلاڪ ٿيل رياست ۾ ويندو.طريقي کي سڏڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندو
notify()
؟Object monitor = getMonitor(); synchronized(monitor) { … monitor.wait(); … }
ان کان پوءmonitor.wait()
، موضوع انتظار جي حالت ۾ ويندي. هڪ طريقوnotify()
جيڪو ڪنهن شئي تي ڪنهن ٻئي ٿريڊ ذريعي سڏجي ٿوmonitor
ٿريڊ کي WAITING اسٽيٽ مان RUNNABLE رياست ڏانهن منتقل ڪندو جيستائين مانيٽر شئي کي ڪنهن ٻئي ٿريڊ طرفان پڪڙي نه وڃي، ٻي صورت ۾ BLOCKED رياست ڏانهن. -
طريقي کي سڏڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندو
notifyAll()
؟notifyAll()
"رهندو" سڀ موضوع. سڀني ”سوڻ“ (انتظار) سلسلي مان ھڪڙو رننبل حالت ۾ ويندو، استعمال ٿيندڙ شئي جي مانيٽر کي سنڀاليندو ۽ پنھنجو ڪم جاري رکندو. باقي بلاڪ ٿيل حالت ۾ هوندو. جيئن ئي پهريون ”جاڳڻ“ وارو ٿريڊ مانيٽر کي رليز ڪري ٿو، جنهن جو هرڪو انتظار ڪري رهيو آهي، ان جي قسمت ايندڙ ٿريڊ ۾ ورجائي ويندي (هڪ صوابديدي ڌاڳو بلاڪ ٿيل رياست کان هليو ويندو رننبل رياست ڏانهن). اهو جاري رهندو جيستائين سڀ ”جاڳيل“ سلسلا بلاڪ ٿيل حالت مان نڪرندا. -
هم وقت سازي واري بلاڪ ۾ ٽي ڌاڙا، جن کي
انهن مان ٻه بلاڪ ٿيل رياست ۾ ويندا، هڪ رننبل رياست ۾wait()
ميوٽيڪس اعتراض سڏيو ويندو آهي. جيڪڏهن چوٿون ٿريڊ سڏجي ته اهي سلسلا ڪهڙي حالت ۾ وينداnotifyAll()
؟ -
ان حقيقت جي باوجود ته موجوده ٿريڊ کي TIMED_WAITING اسٽيٽ ۾ منتقل ڪيوjoin(500)
ان کان ڪيئن مختلف آهيwait(500)
؟join(500)
ويندو ، انهن جي وچ ۾ اهم فرق آهن: هڪ ٿريڊ کي سڏيو وڃي ٿو، ان اعتراض تي هڪ هم وقت ساز بلاڪ جي اندر سڏجي ٿو جنهن تي هي بلاڪ هم وقت ساز ٿيل آهي. جڏهن سڏبو، موجوده ٿريڊ ان سلسلي لاءِ 500 ملي سيڪنڊن جو انتظار ڪندو جنهن جي طريقي کي مڪمل ڪرڻ لاءِ سڏيو ويو هو. جڏهن سڏبو، موجوده ٿريڊ ان لاڪ کي هم وقت سازي واري شئي مان ڇڏائي ڇڏيندو ۽ 500 ملي سيڪنڊن لاءِ سمهي پوندو. 500 ملي سيڪنڊن کان پوءِ، ٻنهي صورتن ۾ سلسلا ڪم ڪندا رهندا.wait(500)
join(500)
wait(500)
join(500)
join()
wait(500)
-
wait(500)
ان کان ڪيئن مختلف آهيsleep(500)
؟sleep(500)
هڪ ٿريڊ تي سڏجي ٿو،wait(500)
جنهن کي اعتراض تي هڪ هم وقت ساز بلاڪ جي اندر سڏيو وڃي ٿو جنهن تي هي بلاڪ هم وقت سازي آهي.
جڏهن سڏبو،sleep(500)
موجوده ٿريڊ 500 مليسيڪنڊ انتظار ڪندو، پوءِ پنهنجو ڪم جاري رکو.
جڏهن سڏبو،wait(500)
موجوده ٿريڊ ان لاڪ کي هم وقت سازي واري شئي مان ڇڏائي ڇڏيندو ۽ 500 ملي سيڪنڊن لاءِ سمهي پوندو. -
طريقي کي ڪال ڪرڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندي
جڏهن هڪ طريقو سڏيو ويندو آهيyield()
؟yield()
، موجوده موضوع "پنهنجي موڙ کي ڇڏي ٿو" ۽ جاوا فوري طور تي ايندڙ سلسلي تي عمل ڪرڻ لاء سوئچ ڪري ٿو. اهو سلسلو رياست کانrunning
رياست ڏانهن وڃي ٿوready
. هلندڙ ۽ تيار رياستون RUNNABLE رياست جون سب اسٽيٽس آهن.
GO TO FULL VERSION