JavaRush /جاوا بلاگ /Random-SD /ليول 25. ليول جي موضوع تي انٽرويو سوالن جا جواب
zor07
سطح
Санкт-Петербург

ليول 25. ليول جي موضوع تي انٽرويو سوالن جا جواب

گروپ ۾ شايع ٿيل
ليول 25. ليول جي موضوع تي انٽرويو سوالن جا جواب - 1
  1. اعتراض جون سڀ حالتون ڇا آهن Thread؟

    • نئون
    • هلڻ لائق
    • بلاڪ ٿيل
    • انتظار ڪرڻ
    • TIMED_WAITING
    • ختم ٿيل
  2. بلاڪ ۾ داخل ٿيڻ وقت ڪھڙين رياستن ۾ ٿريڊ وڃي سگھي ٿو synchronized؟

    • هلڻ لائق
    • بلاڪ ٿيل

    RUNNABLE ۾، جيڪڏهن ڪوڊ جو بلاڪ نشان لڳل آهي synchronizedته ڪنهن ٻئي موضوع تي قبضو نه ڪيو ويو آهي. ٻي صورت ۾، اسان جي سلسلي کي BLOCKED حالت ملي ويندي ۽ ميوٽڪس اعتراض جاري ٿيڻ جو انتظار ڪندو.

  3. طريقي کي سڏڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندو wait()؟

    هن طريقي کي سڏڻ سان ٿريڊ کي WAITING حالت ۾ رکي ٿو.
    اهو طريقو wait()صرف هڪ بلاڪ جي اندر هڪ ميوٽڪس اعتراض تي سڏي سگهجي ٿو synchronizedجيڪو موجوده سلسلي طرفان "لاڪ" ڪيو ويو آهي، ٻي صورت ۾ اهو طريقو هڪ غير قانوني مانيٽر اسٽيٽ ايڪسپشن استثنا اڇلائي ڇڏيندو .

    Object monitor = getMonitor();
    synchronized(monitor)
    {
     …
     monitor.wait();}

    جڏهن هڪ طريقو سڏيو ويندو آهي wait()، موجوده ٿريڊ شئي مان لاڪ جاري ڪري ٿو monitor۽ انتظار جي حالت ۾ داخل ٿئي ٿو، طريقي جي انتظار ۾ ٻئي سلسلي monitor.notify()طرفان سڏيو وڃي ٿو. monitor.notifyAll()جيئن ئي ائين ٿئي ٿو، موضوع جاڳندو ۽ جيڪڏهن مانيٽر مصروف نه هو، اهو ان کي پڪڙيندو ۽ ڪم جاري رکندو.
    جيڪڏهن مانيٽر ڪنهن ٻئي سلسلي تي قبضو ڪيو ويو آهي، موجوده ڌاڳو بلاڪ ٿيل رياست ۾ ويندو.

  4. طريقي کي سڏڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندو wait(500)؟

    ھن طريقي کي سڏڻ سان ٿريڊ کي TIMED_WAITING حالت ۾ رکي ٿو.
    طريقي سان قياس ڪندي 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 رياست ڏانهن.

  5. طريقي کي سڏڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندو notifyAll()؟

    notifyAll()"رهندو" سڀ موضوع. سڀني ”سوڻ“ (انتظار) سلسلي مان ھڪڙو رننبل حالت ۾ ويندو، استعمال ٿيندڙ شئي جي مانيٽر کي سنڀاليندو ۽ پنھنجو ڪم جاري رکندو. باقي بلاڪ ٿيل حالت ۾ هوندو. جيئن ئي پهريون ”جاڳڻ“ وارو ٿريڊ مانيٽر کي رليز ڪري ٿو، جنهن جو هرڪو انتظار ڪري رهيو آهي، ان جي قسمت ايندڙ ٿريڊ ۾ ورجائي ويندي (هڪ صوابديدي ڌاڳو بلاڪ ٿيل رياست کان هليو ويندو رننبل رياست ڏانهن). اهو جاري رهندو جيستائين سڀ ”جاڳيل“ سلسلا بلاڪ ٿيل حالت مان نڪرندا.

  6. هم وقت سازي واري بلاڪ ۾ ٽي ڌاڙا، جن کي wait()ميوٽيڪس اعتراض سڏيو ويندو آهي. جيڪڏهن چوٿون ٿريڊ سڏجي ته اهي سلسلا ڪهڙي حالت ۾ ويندا notifyAll()؟

    انهن مان ٻه بلاڪ ٿيل رياست ۾ ويندا، هڪ رننبل رياست ۾

  7. join(500)ان کان ڪيئن مختلف آهي wait(500)؟

    ان حقيقت جي باوجود ته موجوده ٿريڊ کي TIMED_WAITING اسٽيٽ ۾ منتقل ڪيو join(500)ويندو ، انهن جي وچ ۾ اهم فرق آهن: هڪ ٿريڊ کي سڏيو وڃي ٿو، ان اعتراض تي هڪ هم وقت ساز بلاڪ جي اندر سڏجي ٿو جنهن تي هي بلاڪ هم وقت ساز ٿيل آهي. جڏهن سڏبو، موجوده ٿريڊ ان سلسلي لاءِ 500 ملي سيڪنڊن جو انتظار ڪندو جنهن جي طريقي کي مڪمل ڪرڻ لاءِ سڏيو ويو هو. جڏهن سڏبو، موجوده ٿريڊ ان لاڪ کي هم وقت سازي واري شئي مان ڇڏائي ڇڏيندو ۽ 500 ملي سيڪنڊن لاءِ سمهي پوندو. 500 ملي سيڪنڊن کان پوءِ، ٻنهي صورتن ۾ سلسلا ڪم ڪندا رهندا.wait(500)
    join(500)wait(500)
    join(500)join()
    wait(500)

  8. wait(500)ان کان ڪيئن مختلف آهي sleep(500)؟

    sleep(500)هڪ ٿريڊ تي سڏجي ٿو، wait(500)جنهن کي اعتراض تي هڪ هم وقت ساز بلاڪ جي اندر سڏيو وڃي ٿو جنهن تي هي بلاڪ هم وقت سازي آهي.
    جڏهن سڏبو، sleep(500)موجوده ٿريڊ 500 مليسيڪنڊ انتظار ڪندو، پوءِ پنهنجو ڪم جاري رکو.
    جڏهن سڏبو، wait(500)موجوده ٿريڊ ان لاڪ کي هم وقت سازي واري شئي مان ڇڏائي ڇڏيندو ۽ 500 ملي سيڪنڊن لاءِ سمهي پوندو.

  9. طريقي کي ڪال ڪرڻ وقت ٿريڊ ڪهڙي حالت ۾ ويندي yield()؟

    جڏهن هڪ طريقو سڏيو ويندو آهي yield()، موجوده موضوع "پنهنجي موڙ کي ڇڏي ٿو" ۽ جاوا فوري طور تي ايندڙ سلسلي تي عمل ڪرڻ لاء سوئچ ڪري ٿو. اهو سلسلو رياست کان runningرياست ڏانهن وڃي ٿو ready. هلندڙ ۽ تيار رياستون RUNNABLE رياست جون سب اسٽيٽس آهن.

PS تبصرا، اضافا، تصحيح، تبصرا ڀليڪار =)
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION