JavaRush /Java Blog /Random-TK /25-nji dereje. Dereje derejesindäki söhbetdeşlik soraglar...
zor07
Dereje
Санкт-Петербург

25-nji dereje. Dereje derejesindäki söhbetdeşlik soraglaryna jogaplar

Toparda çap edildi
25-nji dereje. Dereje derejesinde mowzuk soraglaryna jogaplar - 1
  1. Obýektiň ähli ýagdaýlary nähili Thread?

    • T NEWZE
    • AÇYLMAK
    • GARAŞAN
    • Garaşmak
    • TIMED_WAITING
    • TERMINAT
  2. Blok girende haýsy ştatlara baryp biler synchronized?

    • AÇYLMAK
    • GARAŞAN

    RUNNABLE-de, bellenen kod bloky synchronizedbaşga bir sapak bilen meşgullanmasa. Otherwiseogsam, sapagymyz GARAŞAN ýagdaýy alar we mutex obýektiniň çykmagyna garaşar.

  3. Usuly çagyranda sapak haýsy ýagdaýa barar wait()?

    Bu usula jaň etmek sapagy garaşmak ýagdaýynda goýýar.
    Usuly diňe häzirki sapak bilen “gulplanan” muteeks obýektindäki wait()blokyň içinde atlandyryp bolar , ýogsam bu usul “ IllegalMonitorStateException” kadasyny taşlar .synchronized

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

    Haçan-da bir usul diýlende wait(), häzirki sapak gulpy obýektden çykarýar we usulyň başga bir sapak bilen monitorçagyrylmagyna garaşyp, garaşmak ýagdaýyna girýär . Bu waka ýüze çykan badyna sapak oýanar we monitor işli däl bolsa, ony tutar we işlemegini dowam etdirer. Monitor başga bir sapak bilen meşgullanýan bolsa, häzirki sapak GARAŞAN ýagdaýa geçer.monitor.notify()monitor.notifyAll()

  4. Usuly çagyranda sapak haýsy ýagdaýa barar wait(500)?

    Bu usula jaň etmek, sapagy TIMED_WAITING ýagdaýynda goýýar.
    Usul bilen meňzeşlik bilen wait(), diňe häzirki sapak bilen “gulplanan” (gulplanan) muteeks obýektindäki wait(timeout)blokyň içinde atlandyrylyp bilner .synchronized

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

    Usula jaň edilende wait(), häzirki sapak gulpy obýektden çykarýar monitorwe 500 millisekuntda uklaýar. Obýekt monitorbaşga bir sapak bilen alnyp bilner.
    500 millisekuntdan soň, sapak oýanar we monitorişli bolmasa, ony tutar we işlemegini dowam etdirer.
    Monitor başga bir sapak bilen meşgullanýan bolsa, häzirki sapak GARAŞAN ýagdaýa geçer.

    Usuly çagyranda sapak haýsy ýagdaýa barar notify()?

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

    Ondan soň monitor.wait(), sapak garaşmak ýagdaýyna girer. notify()Obýektdäki başga bir sapak tarapyndan çagyrylan usul, monitormonitoryň obýekti başga bir sapak bilen ele alynmasa, sapagy garaşýan ýagdaýyndan RUNNABLE ýagdaýyna geçirer.

  5. Usuly çagyranda sapak haýsy ýagdaýa barar notifyAll()?

    notifyAll()ähli sapaklar "galar". Sleepinghli "uklaýan" (garaşýan) sapaklaryň biri RUNNABLE ýagdaýyna girer, ulanylýan obýektiň monitoryny alar we işini dowam etdirer. Galanlary GARAŞAN ýagdaýda bolar. Ilkinji “oýanmak” sapagy, hemmeleriň garaşýan monitory çykaran badyna, onuň ykbaly indiki sapak bilen gaýtalanar (özbaşdak sapak bloklanan ýagdaýdan RUNNABLE ýagdaýyna geçer). "Hli" oýanan "sapaklar GARAŞAN ýagdaýdan çykýança dowam eder.

  6. Sinhronlaşdyrylan blokda wait()mutex obýekti diýilýän üç sapak. Dördünji sapak jaň etse, bu sapaklar haýsy ýagdaýa barar notifyAll()?

    Olardan ikisi GARAŞAN, biri RUNNABLE ýagdaýyna girer

  7. Bu nähili join(500)tapawutlanýar wait(500)?

    Häzirki sapagy TIMED_WAITING ýagdaýyna geçirjekdigine we geçiriljekdigine garamazdan, olaryň arasynda düýpli tapawutlar bar: join(500)bu blok sinhronlanan obýektiň üstünde sinhronlaşdyrylan blokyň içinde çagyrylýan sapak . Çagyrylanda, häzirki sapak usuly gutarmak üçin 500 millisekunt garaşar. Çagyrylanda, häzirki sapak sinhronlaşdyrylan obýektden gulpy boşadar we 500 millisekuntda uklar. 500 millisekuntdan soň, iki ýagdaýda-da sapaklar işlemegini dowam etdirer.wait(500)
    join(500)wait(500)
    join(500)join()
    wait(500)

  8. Bu nähili wait(500)tapawutlanýar sleep(500)?

    sleep(500)wait(500)bu blokyň sinhronlanan obýektindäki sinhron blokyň içinde diýilýän sapak çagyryldy .
    Çagyrylanda sleep(500)häzirki sapak 500 millisekunt garaşar, soň bolsa işini dowam etdirer.
    Çagyrylanda, wait(500)häzirki sapak sinhronlaşdyrylan obýektden gulpy boşadar we 500 millisekuntda uklar.

  9. Usuly çagyranda sapak haýsy ýagdaýa barar yield()?

    Usul diýlende yield(), häzirki sapak “öz gezeginden geçýär” we java derrew indiki sapagy ýerine ýetirýär. Threadüplük ştata runninggeçýär ready. Işleýän we taýýar ýagdaýlar RUNNABLE ýagdaýynyň aşaky bölekleri.

PS Teswirler, goşmaçalar, düzedişler, bellikler hoş geldiňiz =)
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION