JavaRush /Blog Jawa /Random-JV /Tingkat 25. Wangsulan pitakonan wawancara babagan topik t...
zor07
tingkat
Санкт-Петербург

Tingkat 25. Wangsulan pitakonan wawancara babagan topik tingkat

Diterbitake ing grup
Level 25. Wangsulan pitakonan wawancara babagan topik level - 1
  1. Apa kabeh status obyek kasebut Thread?

    • ANYAR
    • LUKAS
    • diblokir
    • NUNGGU
    • TIMED_WAITING
    • TERMINASI
  2. Apa negara sing bisa ditindakake thread nalika mlebu blok synchronized?

    • LUKAS
    • diblokir

    Ing RUNNABLE, yen blok kode sing ditandhani synchronizedora dikuwasani dening benang liyane. Yen ora, utas kita bakal nampa status BLOCKED lan bakal ngenteni obyek mutex dibebasake.

  3. Apa negara sing bakal ditindakake benang nalika nelpon metode kasebut wait()?

    Nelpon cara iki nempatno thread ing negara WAITING.
    Cara kasebut wait()mung bisa diarani ing blok synchronizeding obyek mutex sing wis "dikunci" dening benang saiki, yen cara kasebut bakal mbuwang pengecualian IllegalMonitorStateException .

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

    Nalika cara diarani wait(), Utas saiki ngeculake kunci saka obyek monitorlan lumebu ing negara TUNGGU, ngenteni cara kasebut diarani monitor.notify()thread monitor.notifyAll()liyane. Sanalika iki kedadeyan, benang bakal tangi lan yen monitor ora sibuk, bakal dicekel lan terus digunakake.
    Yen monitor dikuwasani dening thread liyane, thread saiki bakal pindhah menyang negara BLOCKED.

  4. Apa negara sing bakal ditindakake benang nalika nelpon metode kasebut wait(500)?

    Nelpon cara iki nempatno thread ing negara TIMED_WAITING.
    Kanthi analogi karo metode kasebut wait(), wait(timeout)mung bisa diarani ing njero blok synchronizeding obyek mutex sing wis "dikunci (dikunci)" dening benang saiki.

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

    Nalika nelpon metode kasebut wait(), benang saiki ngeculake kunci saka obyek monitorlan turu nganti 500 milidetik. Obyek monitorbisa dijupuk dening thread liyane.
    Sawise 500 milidetik, benang bakal tangi lan yen monitorora sibuk, benang kasebut bakal dicekel lan terus digunakake.
    Yen monitor dikuwasani dening thread liyane, thread saiki bakal pindhah menyang negara BLOCKED.

    Apa negara sing bakal ditindakake benang nalika nelpon metode kasebut notify()?

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

    Sawise monitor.wait(), thread bakal pindhah menyang negara WAITING. Cara notify()sing diarani thread liyane ing obyek monitorbakal mindhah thread saka negara WAITING menyang negara RUNNABLE kajaba obyek monitor dijupuk dening thread liyane, digunakake kanggo negara BLOCKED.

  5. Apa negara sing bakal ditindakake benang nalika nelpon metode kasebut notifyAll()?

    notifyAll()"bakal tetep" kabeh thread. Salah siji saka kabeh "turu" (NUNGGU) Utas bakal pindhah menyang negara RUNNABLE, njupuk liwat monitor saka obyek digunakake lan terus sawijining karya. Liyane bakal ana ing negara BLOCKED. Sanalika utas "tangi" pisanan ngeculake monitor, sing ditunggu-tunggu wong liya, nasibe bakal diulang maneh ing benang sabanjure (ulir sing sewenang-wenang bakal pindhah saka negara BLOCKED menyang negara RUNNABLE). Iki bakal terus nganti kabeh thread "awakened" ninggalake status BLOCKED.

  6. Telung benang ing blok sing disinkronake sing diarani wait()obyek mutex. Apa negara sing bakal ditindakake benang kasebut yen benang kaping papat diarani notifyAll()?

    Loro saka wong-wong mau bakal pindhah menyang negara BLOCKED, siji menyang negara RUNNABLE

  7. Kepiye bedane join(500)karo wait(500)?

    Senadyan kasunyatan sing lan join(500)bakal wait(500)nransfer thread saiki kanggo negara TIMED_WAITING, ana beda wujud antarane wong-wong mau:
    join(500)disebut ing Utas, wait(500)disebut nang pemblokiran diselarasake ing obyek kang pemblokiran iki diselarasake.
    Yen ditelpon, join(500)utas saiki bakal ngenteni 500 milidetik kanggo utas sing cara kasebut join()diarani rampung.
    Yen diarani, wait(500)utas saiki bakal ngeculake kunci saka obyek sing disinkronake lan turu nganti 500 milidetik.
    Sawise 500 milidetik, ing kasus loro, benang bakal terus bisa digunakake.

  8. Kepiye bedane wait(500)karo sleep(500)?

    sleep(500)disebut ing Utas, wait(500)disebut nang pemblokiran diselarasake ing obyek kang pemblokiran iki diselarasake.
    Yen diarani, sleep(500)utas saiki bakal ngenteni 500 milidetik, banjur nerusake karyane.
    Yen diarani, wait(500)utas saiki bakal ngeculake kunci saka obyek sing disinkronake lan turu nganti 500 milidetik.

  9. Apa negara sing bakal ditindakake benang nalika nelpon metode kasebut yield()?

    Nalika cara diarani yield(), thread saiki "skip giliran" lan java langsung ngalih kanggo nglakokaké thread sabanjuré. Utas pindhah saka negara runningmenyang negara ready. Negara mlaku & siap minangka substate saka negara RUNNABLE.

PS Komentar, tambahan, koreksi, komentar diwenehake =)
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION