Topp 40 flertrådsintervjuspørsmål og svar (2025)

Topp Java Multithreading-intervjuspørsmål

Her er Multithreading Intervjuspørsmål intervjuspørsmål og svar for ferskinger så vel som erfarne kandidater for å få drømmejobben.


1) Hva er en tråd?

En tråd er en samtidig enhet for utførelse. Vi kan si at det er en del av prosessen som lett kan kjøres samtidig med andre deler av prosessen.

Gratis PDF-nedlasting: Multithreading intervjuspørsmål og svar


2) Hva er multithreading?

multithreading i Java er en prosess for å kjøre to eller flere tråder samtidig for maksimal utnyttelse av CPU.

Hovedfordelen er:

  • Tråder deler samme adresseområde
  • Tråden forblir lett
  • Kostnadene for kommunikasjon mellom tråder er lave.

3) Hvilke tilstander er knyttet til tråden?

  • Klar
  • kjører
  • venter
  • Død tilstand

4) Diskuter en tråds livssyklus?

Livssyklusen til en tråd ligner livssyklusen til prosesser som kjører i en operativsystem. I løpet av livssyklusen kan tråden bevege seg fra en tilstand til en annen. Det avhenger imidlertid av operasjonen som utføres på den.


5) Hva er trådtilstandene?

Følgende er de forskjellige trådtilstandene:

Nytt: En tråd som nettopp er instansiert er i den nye tilstanden. Når en start()-metode påkalles, blir tråden klartilstand. Deretter flyttes den til kjørbar tilstand av trådplanleggeren.

  • Kjørbar: En tråd som er klar til å kjøre
  • Løping: En tråd som kjører er i kjørende tilstand.
  • Blokkert: En blokkert tråd venter på at en skjermlås er i denne tilstanden. Denne tingen kan også skje når en tråd utfører en I/O-operasjon og flytter til neste tilstand.
  • Venter: Det er en tråd som venter på at en annen tråd skal gjøre den spesifikke handlingen.
  • Timed_waiting: Det er en tråd som venter på at en annen tråd skal opptre.
  • Avsluttet: En tråd som har gått ut er i denne tilstanden.
Multithreading intervjuspørsmål
Multithreading intervjuspørsmål

6) Hva er de største forskjellene mellom tråd og prosess?

Tråden er en undergruppe av prosessen. Prosessen kan inneholde flere tråder. Prosessen kan kjøre på forskjellig minneplass, men alle tråder deler samme minneplass.


7) Hva er deadlock?

Deadlock er en situasjon når en tråd venter på en objektlås, som er anskaffet av en annen tråd og andre tråd også venter på en objektlås som er anskaffet av den første tråden. Siden begge trådene venter på at hverandre skal løse ut, kalles denne tilstanden deadlock.


8) Hva er LiveLock?

Livelock oppstår når alle tråder er blokkert og ikke er i stand til å kjøre på grunn av utilgjengelighet av nødvendige ressurser, og manglende eksistens av ublokkerte tråder.

Livelock kan oppstå under følgende forhold:

  • Når alle trådene i et program kjøres på et objekt med null parametere. Programmet er live-låst og behandles aldri før en eller flere tråder kaller Object.notify () eller Object.notifyAll() på de aktuelle objektene.
  • Livelock skjer også når alle trådene i et program sitter fast i uendelige løkker.
Multithreading intervjuspørsmål
multithreading

9) Hva er en skjerm?

  • Skjermen er en kode som kan kjøres av bare én tråd om gangen.
  • Hvis en annen tråd forsøker å få tilgang samtidig, vil den bli suspendert til den gjeldende tråden slipper Monitoren.

10) Hva mener du med trådsult?

I en situasjon når en tråd ikke har tilstrekkelig CPU for utførelse skjer det at tråden sulter.

Det kan imidlertid skje i følgende scenarier

  • Lavprioriterte tråder vil få mindre CPU sammenlignet med høyprioriterte tråder. Lavere prioritet tråd kan sulte bort mens du venter på å få mer CPU-plass til å utføre beregninger.
  • Tråden kan vente på ubestemt tid på en lås på objektets monitor, men notify() kan gjentatte ganger vekke noen andre tråder. I så fall sulter også tråden bort.

11) Hva er meningen med opptatt spinn i multi-threading?

Busy spin er en teknikk som samtidige programmerere bruker for å få en tråd til å vente på visse betingelser. Dette er ganske forskjellig fra tradisjonelle metoder som wait() og sleep() som alle innebærer å gi fra seg CPU-kontroll. Denne metoden krever ikke å forlate CPU, i stedet kjører den bare den tomme løkken.


12) Hva er kontekstswitching i multi-threading?

Det er prosessen med å lagre og gjenopprette CPU-tilstand. Dette hjelper til gjenoppta trådutførelse fra samme punkt på et senere tidspunkt. Det er en av de essensielle funksjonene for multitasking-operativsystem og støtte for flertrådsmiljøet.


13) Hvorfor er trådadferd uforutsigbar?

Vi kan si at trådoppførsel er uforutsigbar fordi utførelsen av tråder avhenger av trådplanlegger. Man bør huske at hver trådplanlegger har en annen implementering på forskjellige plattformer som Windows, Unix, etc.


14) Hvordan kan du pause utførelsen av en tråd i en viss tid?

sleep ()-metoden brukes til å pause utførelsen av tråden i en viss tid. Dette vil imidlertid ikke stoppe behandlingen av tråden for en bestemt tid. Men når tråden våkner fra dvale, endres tilstanden til kjørbar og basert på trådplanlegging, vil den bli utført.


15) Hva er mange måter en tråd kan gå inn i ventetilstand på?

En tråd kan gå inn i ventetilstand på følgende måter

  • Bruker sleep() metoden
  • Blokkering på I/O
  • Prøver uten hell å skaffe et objekts lås
  • Ved å påkalle et objekts wait()-metode

16) Hva skjer hvis vi ikke overstyrer en kjøremetode?

I Java, når vi kaller start()-metoden på en tråd, kaller den internt run()-metoden med nyopprettet tråd. Så hvis vi ikke overstyrer run( )-metoden, vil den nyopprettede tråden ikke bli kalt, så ingenting vil skje.
Eksempel:

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) Hva er hovedforskjellen mellom Thread.start() og Thread?run()-metoden?

Thread.start()-metoden (native metode) av Thread-klassen gjør jobben med å kjøre Thread.A run()-metoden i en tråd. Så hvis vi kaller Thread direkte. Run()-metoden kjøres også i samme tråd. Dermed vil det aldri løse formålet med å opprette en ny tråd.


18) Hvordan lage en tråd i java?

Det er to metoder for å lage en tråd i java.

  • Først ved å implementere Runnable-grensesnitt og deretter lage et trådobjekt fra det.
  • Den andre metoden er å utvide trådklassen.

19) Hva er meningen med trådprioritet?

Hver tråd har en prioritet. Imidlertid får en høyere prioritet også forrang i utførelse. Det avhenger imidlertid også av Thread Scheduler-implementeringen som er OS-avhengig. Det er mulig å endre prioritet til tråden, men det gir ingen garanti for at tråden med høyere prioritet vil bli utført først.


20) Hva gjør join()-metoden?

join()-metoden venter på at en tråd dør. Det tvinger alle de løpende trådene til å slutte å kjøre til det tidspunktet tråden går sammen for å fullføre jobben.


21) Hva er Java Shutdown Hook?

Java-avslutningskroken brukes til å rydde opp i ressurser når JVM slås av. Rene ressurser betyr å lukke loggfilen, sende noen varsler eller noe annet. Avslutningskroken må brukes for å kjøre kode før JVM slås av.


22) Hva er de to viktigste bruksområdene for volatile i Java?

Tråder har lov til å holde verdiene til variabler i lokalt minne. Hvis en variabel er merket som flyktig, må den leses fra hovedminnet hver gang den samme variabelen brukes.

På samme måte, hver gang variabelen skrives, må verdien lagres i hovedminnet.


23) Hvordan kan du dele data mellom to tråder i Java?

Vi kan hente data mellom tråder ved å bruke et delt objekt, eller samtidig data struktur som BlockingQueue. Den implementerer et produsent-forbrukermønster ved å bruke vente- og varslingsmetoder. Det innebærer også å dele objekter mellom to tråder.


24) Hvordan kan flere tråder kontrolleres samtidig?

Flere tråder kan kontrolleres samtidig hvis de er opprettet i et ThreadGroup-objekt.


25) Hva er en blokkeringsmetode i Java?

I Java er blokkeringsmetode en metode som blokkerer til oppgaven er ferdig. For eksempel, aksepter () metoden for ServerSocket-blokker til tidspunktet en klient er tilkoblet. Her refererer blokkering til alt som kontrollen ikke vil returnere til den som ringer før oppgaven er over.


26) Hva er hovedforskjellen mellom vente () og søvn () metode?

Vente() Sove()
Denne metoden er definert i klassen Object Metoden er definert i trådklassen
Wait()-metoden frigjør låsen Denne metoden frigjør aldri låsen.

27) Hva er et uforanderlig objekt? Hvordan kan det hjelpe å skrive en samtidig søknad?

Ethvert objekt kan anses som uimotsagt hvis dets tilstand ikke endres etter at det er konstruert. Uforanderlige objekter brukes til å lage enkle, pålitelige og samtidige applikasjoner.

For å lage objekter som er uforanderlige, er det viktig å gjøre klassen og dens medlem endelige, slik at når objekter er opprettet, endres ikke tilstanden.


28) Fortell meg forskjellen mellom å gi etter og å sove?

Når en oppgave påkaller yield()-metoden, går den tilbake til klar-tilstanden.

Når en oppgave påkaller sleep()-metoden, går den tilbake til ventetilstand.


29) Hva er ThreadPool?

ThreadPool er en samling av tråder som gjenbruker et fast antall tråder for å utføre den spesifikke oppgaven.


30) Hva er bruken av Synchronized keyword?

Synkronisert nøkkelord kan brukes enten på den statiske eller ikke-statiske metoden. Ved å bruke Synkronisert kan kun én tråd få tilgang til synkroniserte metoder. Men i en situasjon der det er flere tråder som prøver å få tilgang til samme metode. På det tidspunktet må andre tråder vente på utførelsestråden. Det gir også en lås på objektet for å forhindre en løpstilstand.

public void synchronized method1(){}

public void synchronized staticmethod1(){}

public void myMethod(){

synchronized (this){

//synchronized keyword on block of code

}

}

31) Hva er et flyktig søkeord?

Volatile nøkkelord er en kvalifikator som brukes på en variabel når den er deklarert. Den forteller kompilatoren at verdien av variabelen kan endres når som helst - uten at koden tar noen handling.


32) Hva er hovedforskjellene mellom notify og notifyAll i Java?

Notify ()-metoden gir ingen måte å velge en bestemt tråd på, det er derfor den er bare nyttig når en enkelt While notifyAll() sender et varsel til alle tråder. Det lar dem også konkurrere om låser. Det sikrer også at minst én tråd går videre.


33) Hvilken JVM-parameter brukes til å kontrollere stabelstørrelsen på en tråd?

For å kontrollere stabelstørrelsen på tråden i Java brukes Xss-parameteren.


34) Kan du starte en tråd to ganger i Java?

Nei, når en tråd først er startet, kan den ikke startes andre gang.


35) Hva er hensikten med å bruke yield-metoden av trådklasse?

Yield-metoden er den enkleste måten å be om gjeldende tråd for å gi fra seg CPU slik at andre tråder. Det er en statisk metode og garanterer bare at den nåværende tråden vil gi fra seg CPU, men forteller ikke noe om hvilken annen tråd som også påvirker CPU.


36) Når kan vi si at tråder ikke er en lett prosess i java?

Tråder er ikke en lett prosess når tråder av samme prosess kjøres samtidig. Selv om tråder av forskjellige prosesser kjøres samtidig på det tidspunktet, blir tråder en tungvektsprosess.


37) Kan det er mulig å synkronisere konstruktøren til en Java-klasse?

Som Java Standard kan ikke konstruktører synkroniseres, da andre tråder ikke kan se objektet før trådopprettingsprosessen er ferdig. Det er ikke behov for Java Objects-konstruktør for å bli synkronisert siden det ville låse objektet som konstrueres.


38) Hva er transient variabel?

En forbigående variabel er en variabel som ikke kan serialiseres under serialisering. Den initialiseres til standardverdien under serialiseringen.

Disse intervjuspørsmålene vil også hjelpe i din viva(orals)

Del

4 Kommentarer

  1. Avatar java trening sier:

    hii
    det hjelper meg virkelig. under intervjuforberedelsen.
    Det er virkelig prisverdig å skrive denne artikkelen og gi denne informasjonen.
    Icommnedable til

  2. Avatar Shwethashree Venkatesh sier:

    5) Hva er trådtilstandene?
    Kjørbar er ikke kjørestatus. Den er klar til å kjøre

    1. oppdatert! Takk for at du påpekte dette

    2. Avatar Amuda Adeolu Badmus sier:

      1.Kjørbare tilstander blir sett på som et dobbeltlag på OS-nivå

      2.Nesten alle programmeringsspråk ser på tråden som kjørbar eller IKKE.

      3. En kjørbar tråd kan enten være i (klar eller løpende) tilstand.

      4. Du kan ha to tråder i kjørbare tilstander, men bare én tråd vil eksistere i "løpende" tilstand,
      mens den andre tråden eksisterer i en "løpende" tilstand.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *