40 populaarseimat mitme lõimega intervjuu küsimust ja vastust (2025)

Populaarseimad Java mitmelõimelise intervjuu küsimused

Siin on mitme lõimega intervjuuküsimuste intervjuu küsimused ja vastused nii värsketele kui ka kogenud kandidaatidele oma unistuste töökoha saamiseks.


1) Mis on lõim?

Lõim on samaaegne täitmise üksus. Võime öelda, et see on osa protsessist, mida saab hõlpsasti protsessi teiste osadega samaaegselt käivitada.

Tasuta PDF-i allalaadimine: mitme lõimega intervjuu küsimused ja vastused


2) Mis on multithreading?

Mitmikeermeline Java puhul on protsess, mille käigus käivitatakse korraga kaks või enam lõime, et protsessorit maksimaalselt ära kasutada.

Peamine eelis on:

  • Lõimed jagavad sama aadressiruumi
  • Niit jääb kergeks
  • Lõimedevahelise suhtluse hind on madal.

3) Millised olekud on lõimega seotud?

  • Valmis
  • Running
  • ootamine
  • Surnud olek

4) Arutage niidi elutsüklit?

Niidi elutsükkel sarnaneb protsesside elutsükliga operatsioonisüsteemi. Oma elutsükli jooksul võib niit liikuda ühest olekust teise. See oleneb aga sellega tehtud operatsioonist.


5) Millised on lõime olekud?

Järgmised on erinevad lõime olekud:

Uus: Äsja instantseeritud lõim on uues olekus. Kui käivitatakse meetod start(), muutub lõime valmisolekuks. Seejärel teisaldab lõime ajakava selle käivitatavasse olekusse.

  • Käitatav: Lõng, mis on käivitamiseks valmis
  • Jooks: Käivitav lõim on töörežiimis.
  • Blokeeritud: Blokeeritud lõim ootab, et monitori lukk oleks selles olekus. See võib juhtuda ka siis, kui lõime sooritab I/O operatsiooni ja liigub järgmisse olekusse.
  • Ootel: See on lõim, mis ootab konkreetse toimingu tegemiseks teist lõime.
  • Timed_waiting: See on lõim, mis ootab teise lõime esinemist.
  • Lõpetatud: Väljunud lõim on selles olekus.
Mitme lõimega intervjuuküsimused
Mitme lõimega intervjuuküsimused

6) Millised on lõime ja protsessi peamised erinevused?

Lõim on protsessi alamhulk. Protsess võib sisaldada mitut lõime. Protsess võib töötada erineval mäluruumil, kuid kõik lõimed jagavad sama mäluruumi.


7) Mis on tupik?

Ummik on olukord, kus niit ootab objektilukku, mille omandab teine ​​lõime ja teine ​​niit ootab samuti objektilukku, mille omandab esimene lõime. Kuna mõlemad lõimed ootavad teineteise vabastamist, nimetatakse seda tingimust ummikseisuks.


8) Mis on LiveLock?

Reaalajas lukustamine toimub siis, kui kõik lõimed on blokeeritud ja neid ei saa käivitada vajalike ressursside puudumise ja blokeerimata lõime puudumise tõttu.

Livelock võib ilmneda järgmistel tingimustel:

  • Kui kõik programmi lõimed käivitatakse nullparameetriga objektil. Programm on reaalajas lukustatud ja seda ei töödelda kunagi enne, kui üks või mitu lõime kutsuvad asjakohastel objektidel Object.notify () või Object.notifyAll().
  • Livelock toimub ka siis, kui kõik programmi lõimed on kinni jäänud lõpmatutesse tsüklitesse.
Mitme lõimega intervjuuküsimused
Mitmikeermeline

9) Mis on monitor?

  • Monitor on koodikogu, mida saab korraga käivitada ainult üks lõim.
  • Kui mõni muu lõim üritab samal ajal juurdepääsu saada, peatatakse see, kuni praegune lõim monitori vabastab.

10) Mida sa mõtled niidinälgimise all?

Olukorras, kus lõimel ei ole selle täitmiseks piisavalt CPU-d, tekib lõime nälg.

Siiski võib see juhtuda järgmistel juhtudel

  • Madala prioriteediga lõimedel on kõrge prioriteediga lõimedega võrreldes vähem protsessorit. Madalama prioriteediga lõime võib jääda nälga ootama, et saada arvutuste tegemiseks rohkem protsessoriruumi.
  • Lõim võib lõputult oodata objekti monitori lukustamist, kuid notify() võib korduvalt äratada mõned teised lõimed. Sel juhul nälgib ka niit.

11) Mida tähendab hõivatud keerutamine mitme keermestamise puhul?

Hõivatud keerutamine on tehnika, mida samaaegsed programmeerijad kasutavad, et panna lõime teatud tingimustel ootama. See erineb üsna traditsioonilistest meetoditest, nagu oota() ja sleep(), mis kõik hõlmavad protsessori juhtimisest loobumist. See meetod ei nõua CPU-st loobumist, selle asemel käivitab see lihtsalt tühja tsükli.


12) Mis on kontekstivahetus mitme lõimega töötlemises?

See on protsessori oleku salvestamise ja taastamise protsess. See aitab kaasa Jätka lõime täitmine samast punktist hilisemal ajahetkel. See on üks olulisi funktsioone multitegumtöötluse operatsioonisüsteemi ja mitme lõimega keskkonna toetamise jaoks.


13) Miks on lõime käitumine ettearvamatu?

Võime öelda, et lõime käitumine on ettearvamatu, kuna lõimede täitmine sõltub lõime ajakavast. Tuleks meeles pidada, et igal lõime planeerijal on erinevatel platvormidel, nagu Windows, Unix jne, erinev rakendus.


14) Kuidas saate lõime täitmist teatud ajaks peatada?

unerežiimi () meetodit kasutatakse lõime täitmise teatud ajaks peatamiseks. Kuid see ei peata niidi töötlemist teatud ajaks. Kui aga lõime unerežiimist ärkab, selle olek muutub käivitatavaks ja põhineb lõime ajastamisel, siis see käivitatakse.


15) Millised on arvukad viisid, kuidas lõim saab ooteolekusse siseneda?

Lõim saab ooteolekusse siseneda järgmistel viisidel

  • Sleep() meetodi kasutamine
  • I/O blokeerimine
  • Ebaõnnestunud katse omandada objekti lukku
  • Käivitades objekti ootamise () meetodi

16) Mis juhtub, kui me ei alista käivitusmeetodit?

Java puhul, kui kutsume lõimel meetodit start(), kutsub see sisemiselt välja meetodi run() koos vastloodud lõimega. Seega, kui me ei alista run( ) meetodit, siis vastloodud lõime ei kutsuta, nii et midagi ei juhtu.
Näide:

class MyThread extends Thread {

//don't override run() method

}
public class DontOverrideRun {

public static void main(String[] args) {

System.out.println("main has started.");

MyThread thread1=new MyThread();

thread1.start();

System.out.println("main has ended.");
}

}

17) Mis on peamine erinevus meetodi Thread.start() ja Thread?run() vahel?

Thread klassi meetod Thread.start() (native meetod) täidab lõimes meetodi Thread.A run() käivitamise. Seega, kui me kutsume otse Thread.Meetod run() käivitatakse ka samas lõimes. Seega ei lahenda see kunagi uue lõime loomise eesmärki.


18) Kuidas luua javas lõime?

Javas lõime loomiseks on kaks meetodit.

  • Esmalt rakendades Runnable liidese ja seejärel looge sellest lõimeobjekt.
  • Teine meetod on lõime klassi laiendamine.

19) Mida tähendab lõime prioriteet?

Igal lõimel on prioriteet. Kuid kõrgem prioriteet on ka täitmisel ülimuslik. Kuid see sõltub ka lõime ajakava rakendamisest, mis on OS-ist sõltuv. Lõime prioriteeti on võimalik muuta, kuid see ei anna kindlust, et kõrgema prioriteediga lõime käivitatakse esimesena.


20) Mida teeb join() meetod?

Meetod join() ootab, kuni lõime sureb. See sunnib kõiki jooksvaid lõime täitmise lõpetama kuni hetkeni, mil lõim oma töö lõpetamiseks liitub.


21) Mis on Java Shutdown Hook?

Java väljalülituskonksu kasutatakse ressursside puhastamiseks, kui JVM lülitub välja. Puhtad ressursid tähendavad logifaili sulgemist, hoiatuste saatmist või midagi muud. Enne JVM-i väljalülitamist tuleb koodi käivitamiseks kasutada väljalülituskonksu.


22) Millised on volatile'i kaks peamist kasutust Javas?

Lõimedel on lubatud hoida muutujate väärtusi lokaalses mälus Kui muutuja on märgitud muutlikuks, siis iga kord, kui kasutatakse sama muutujat, tuleb see lugeda põhimälust.

Samamoodi tuleb iga kord muutuja kirjutamisel väärtus põhimällu salvestada.


23) Kuidas saate jagada andmeid kahe Java lõime vahel?

Andmeid lõimede vahel saame kasutada jagatud objekti või samaaegselt andmete struktuur nagu BlockingQueue. See rakendab tootja-tarbija mustrit, kasutades ootamise ja teavitamise meetodeid. See hõlmab ka objektide jagamist kahe lõime vahel.


24) Kuidas saab mitut lõime korraga juhtida?

Mitut lõime saab korraga juhtida, kui need luuakse ThreadGroupi objektis.


25) Mis on Java blokeerimismeetod?

Javas on blokeerimismeetod meetod, mis blokeerib, kuni ülesanne on tehtud. Näiteks aktsepteerige () ServerSocketi plokkide meetodit, kuni klient on ühendatud. Siin viitab blokeerimine kõigele, mida juhtimine helistajale tagasi ei tule enne, kui ülesanne on lõppenud.


26) Mis on peamine erinevus ootamise () ja une () meetodi vahel?

Oota () Magama ()
See meetod on määratletud klassis Object Meetod on määratletud Thread klassis
Wait() meetod vabastab lukustuse See meetod ei vabasta lukku kunagi.

27) Mis on muutumatu objekt? Kuidas saab see aidata samaaegse avalduse kirjutamisel?

Iga objekti võib pidada vaidlustamatuks, kui selle olek ei muutu pärast selle ehitamist. Muutumatuid objekte kasutatakse lihtsate, usaldusväärsete ja samaaegsete rakenduste loomiseks.

Objekti muutumatuks loomiseks on oluline muuta klass ja selle liige lõplikuks, nii et kui objektid on loodud, siis selle olek ei muutu.


28) Ütle mulle, mis vahe on järeleandmisel ja magamisel?

Kui ülesanne kutsub oma produktiivsuse () meetodi, naaseb see valmisolekusse.

Kui ülesanne käivitab oma sleep() meetodi, naaseb see ooteolekusse.


29) Mis on ThreadPool?

ThreadPool on lõimede kogum, mis kasutab konkreetse ülesande täitmiseks fikseeritud arvu lõime.


30) Milleks on sünkroonitud märksõna kasu?

Sünkroonitud märksõna saab rakendada kas staatilisele või mittestaatilisele meetodile. Sünkroonimise kasutamisel pääseb sünkroonitud meetoditele juurde ainult üks lõim. Kuid olukorras, kus on mitu lõime, mis proovivad juurdepääsu samale meetodile. Sel ajal peavad teised lõimed täitmise lõime ootama. Samuti pakub see objektile lukustuse, et vältida võistlusolukorda.

public void synchronized method1(){}

public void synchronized staticmethod1(){}

public void myMethod(){

synchronized (this){

//synchronized keyword on block of code

}

}

31) Mis on muutlik märksõna?

Muutuv märksõna on määraja, mida rakendatakse muutujale selle deklareerimisel. See ütleb kompilaatorile, et muutuja väärtus võib igal ajal muutuda, ilma et kood midagi ette võtaks.


32) Millised on peamised erinevused Javas notify ja notifyAll vahel?

Teavitamise () meetod ei anna mingit võimalust konkreetse lõime valimiseks, mistõttu on see kasulik ainult siis, kui üks While notifyAll() saadab teatise kõigile lõimedele. See võimaldab neil ka lukkude pärast võistelda. Samuti tagab see vähemalt ühe lõime edasise toimimise.


33) Millist JVM-i parameetrit kasutatakse lõime virna suuruse reguleerimiseks?

Java Xss parameetri Threadi pinu suuruse reguleerimiseks kasutatakse parameetrit.


34) Kas saate Javas lõime kaks korda alustada?

Ei, kui lõime on kord käivitatud, ei saa seda teist korda alustada.


35) Mis on keermeklassi saagikuse meetodi kasutamise eesmärk?

Saagismeetod on lihtsaim viis taotleda praeguse lõime CPU-st loobumist, et teine ​​lõim. See on staatiline meetod ja tagab ainult selle, et praegune lõim loobub CPU-st, kuid ei ütle midagi selle kohta, milline teine ​​​​lõim mõjutab ka CPU-d.


36) Millal saame öelda, et lõimed ei ole Javas kerge protsess?

Lõimed ei ole kerge protsess, kui sama protsessi lõime käitatakse samaaegselt. Kuigi, kui erinevate protsesside lõimed töötavad samal ajal, muutuvad lõimed raskekaaluliseks protsessiks.


37) Kas Java klassi konstruktorit on võimalik sünkroonida?

Java standardina ei saa konstruktoreid sünkroonida, kuna teised lõimed ei näe objekti enne, kui lõime loomise protsess on selle lõpetanud. Java objektide konstruktorit pole vaja sünkroonida, kuna see lukustaks ehitatava objekti.


38) Mis on mööduv muutuja?

Siirduv muutuja on muutuja, mida ei saa serialiseerimise ajal järjestada. See lähtestatakse serialiseerimise ajal vaikeväärtusele.

Need intervjuu küsimused aitavad ka teie viva (suuline)

Jaga

4 Kommentaarid

  1. Avatar java koolitus ütleb:

    Hii
    see tõesti aitab mind. intervjuu ettevalmistamise ajal.
    Selle artikli kirjutamine ja selle teabe edastamine on tõesti kiiduväärt.
    Soovitatav

  2. Avatar Shwethashree Venkatesh ütleb:

    5) Millised on lõime olekud?
    Runnable ei ole Running olek. See on jooksmiseks valmis

    1. uuendatud! Täname, et juhtisite tähelepanu sellele

    2. Avatar Amuda Adeolu Badmus ütleb:

      1. Käivitatavaid olekuid vaadeldakse OS-i tasemel kahekihilisena

      2. Peaaegu kõik programmeerimiskeeled näevad lõime käivitatavana või MITTE.

      3. Käitatav lõim võib olla kas olekus (valmis või töötab).

      4. Teil võib olla käitatavas olekus kaks lõime, kuid töötavas olekus on ainult üks lõime,
      samas kui teine ​​lõime on "töötavas" olekus.

Jäta vastus

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on märgitud *