Top 40 Multithreading-interviewspørgsmål og -svar (2025)

Top Java Multithreading-interviewspørgsmål

Her er Multithreading Interview Questions interviewspørgsmål og svar til friskere såvel som erfarne kandidater til at få deres drømmejob.


1) Hvad er en tråd?

En tråd er en samtidig udførelsesenhed. Vi kan sige, at det er en del af processen, som sagtens kan køre sideløbende med andre dele af processen.

Gratis PDF-download: Multithreading-interviewspørgsmål og -svar


2) Hvad er multithreading?

multithreading i Java er en proces med at udføre to eller flere tråde samtidigt til maksimal udnyttelse af CPU.

Den største fordel er:

  • Tråde deler det samme adresseområde
  • Tråd forbliver let
  • Omkostningerne ved kommunikation mellem tråde er lave.

3) Hvilke tilstande er forbundet med tråden?

  • Ready
  • Løb
  • Venter
  • Død tilstand

4) Diskuter en tråds livscyklus?

Livscyklussen for en tråd ligner livscyklussen for processer, der kører i en operativsystem. I løbet af sin livscyklus kan tråden bevæge sig fra en tilstand til en anden. Det afhænger dog af den operation, der udføres på den.


5) Hvad er trådtilstandene?

Følgende er de forskellige trådtilstande:

Nyt: En tråd, der netop er instansieret, er i den nye tilstand. Når en start()-metode kaldes, bliver tråden klar-tilstand. Derefter flyttes den til den kørebare tilstand af trådplanlæggeren.

  • Kan køres: En tråd som er klar til at køre
  • Løb: En tråd, der kører, er i kørende tilstand.
  • Blokeret: En blokeret tråd venter på, at en skærmlås er i denne tilstand. Denne ting kan også ske, når en tråd udfører en I/O-operation og flytter til den næste tilstand.
  • Venter: Det er en tråd, der venter på, at en anden tråd udfører den specifikke handling.
  • Timed_waiting: Det er en tråd, der venter på, at en anden tråd optræder.
  • Afsluttet: En tråd, der er afsluttet, er i denne tilstand.
Multithreading interviewspørgsmål
Multithreading interviewspørgsmål

6) Hvad er de største forskelle mellem tråd og proces?

Tråden er en delmængde af processen. Processen kan indeholde flere tråde. Processen kan køre på forskellig hukommelsesplads, men alle tråde deler den samme hukommelsesplads.


7) Hvad er dødvande?

Deadlock er en situation, hvor en tråd venter på en objektlås, som er erhvervet af en anden tråd, og anden tråd også venter på en objektlås, der er erhvervet af den første tråd. Da begge tråde venter på, at hinanden forsvinder, kaldes denne tilstand dødvande.


8) Hvad er LiveLock?

Livelock opstår, når alle tråde er blokeret og ikke er i stand til at køre på grund af manglende tilgængelighed af nødvendige ressourcer og manglende eksistens af en ublokeret tråd.

Livelock kan forekomme under følgende forhold:

  • Når alle trådene i et program udføres på et objekt med nul parametre. Programmet er live-låst og behandles aldrig før en eller flere tråde kalder Object.notify () eller Object.notifyAll() på de relevante objekter.
  • Livelock sker også, når alle trådene i et program sidder fast i uendelige løkker.
Multithreading interviewspørgsmål
multithreading

9) Hvad er en skærm?

  • Monitoren er en kode, der kun kan udføres af én tråd ad gangen.
  • Hvis en anden tråd forsøger at få adgang på samme tid, vil den blive suspenderet, indtil den aktuelle tråd frigiver monitoren.

10) Hvad mener du med trådsult?

I den situation, hvor en tråd ikke har tilstrækkelig CPU til dens udførelse, sker der trådsult.

Det kan dog ske i følgende scenarier

  • Tråde med lav prioritet vil få mindre CPU sammenlignet med tråde med høj prioritet. Lavere prioritet tråd kan sulte væk og vente på at få mere CPU-plads til at udføre beregninger.
  • Tråden venter muligvis på ubestemt tid på en låsning på objektets skærm, men notify() vækker muligvis nogle andre tråde gentagne gange. I så fald sulter også tråd væk.

11) Hvad er meningen med travlt spin i multi-threading?

Busy spin er en teknik, som samtidige programmører bruger til at få en tråd til at vente på visse betingelser. Dette er ret anderledes end traditionelle metoder som wait() og sleep(), som alle involverer at opgive CPU-kontrol. Denne metode kræver ikke at opgive CPU, i stedet kører den bare den tomme løkke.


12) Hvad er kontekst-switching i multi-threading?

Det er processen med lagring og gendannelse af CPU-tilstand. Dette hjælper til Genoptag trådudførelse fra samme punkt på et senere tidspunkt. Det er en af ​​de væsentlige funktioner til multitasking-operativsystem og understøttelse af multi-threaded-miljøet.


13) Hvorfor er trådadfærd uforudsigelig?

Vi kan sige, at trådadfærd er uforudsigelig, fordi udførelsen af ​​tråde afhænger af trådplanlæggeren. Man skal huske, at hver trådplanlægger har en anden implementering på forskellige platforme som Windows, Unix osv.


14) Hvordan kan du pause udførelsen af ​​en tråd i et vist tidsrum?

sleep () metoden bruges til at pause udførelsen af ​​tråden i et vist tidsrum. Dette vil dog ikke stoppe behandlingen af ​​tråden i et bestemt tidsrum. Men når tråden vågner fra dvale, ændres dens tilstand til kørebar og baseret på trådplanlægning, den vil blive udført.


15) Hvad er de mange måder, hvorpå en tråd kan gå ind i ventetilstand?

En tråd kan gå ind i ventetilstand på følgende måder

  • Brug sleep() metoden
  • Blokering på I/O
  • Forgæves forsøg på at erhverve et objekts lås
  • Ved at påkalde et objekts wait()-metode

16) Hvad sker der, hvis vi ikke tilsidesætter en kørselsmetode?

I Java, når vi kalder start()-metoden på en tråd, kalder den internt run()-metoden med den nyoprettede tråd. Så hvis vi ikke tilsidesætter run( )-metoden, kaldes den nyoprettede tråd ikke, så der sker ikke noget.
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) Hvad er den største forskel mellem Thread.start() & Thread?run() metoden?

Thread.start()-metoden (native metode) af Thread-klassen udfører jobbet med at køre Thread.A run()-metoden i en tråd. Så hvis vi direkte kalder Thread. Run()-metoden udføres også i den samme tråd. Derfor vil det aldrig løse formålet med at oprette en ny tråd.


18) Hvordan opretter man en tråd i java?

Der er to metoder til at oprette en tråd i java.

  • Først ved at implementere Runnable interface og derefter oprette et trådobjekt fra det.
  • Den anden metode er at udvide trådklassen.

19) Hvad er meningen med trådprioritet?

Hver tråd har en prioritet. En højere prioritet får dog også forrang i udførelsen. Det afhænger dog også af Thread Scheduler-implementeringen, som er OS-afhængig. Det er muligt at ændre trådens prioritet, men det giver ikke sikkerhed for, at tråden med højere prioritet bliver udført først.


20) Hvilken join()-metode gør?

join()-metoden venter på, at en tråd dør. Det tvinger alle de løbende tråde til at stoppe med at udføre, indtil det tidspunkt, hvor tråden forbindes for at fuldføre sit job.


21) Hvad er Java Shutdown Hook?

Java-nedlukningskrogen bruges til at rydde op i ressourcer, når JVM lukker ned. Rene ressourcer betyder at lukke logfilen, sende nogle advarsler eller noget andet. Shutdown hook skal bruges til at udføre kode, før JVM lukker ned.


22) Hvad er de to vigtigste anvendelser af volatile i Java?

Tråde har lov til at holde værdierne af variable i lokal hukommelse. Hvis en variabel er markeret som flygtig, skal den læses fra hovedhukommelsen, hver gang den samme variabel bruges.

På samme måde, hver gang variablen skrives, skal værdien gemmes i hovedhukommelsen.


23) Hvordan kan du dele data mellem to tråde i Java?

Vi kan få data mellem tråde ved at bruge et delt objekt eller samtidig datastruktur som BlockingQueue. Det implementerer et producent-forbrugermønster ved hjælp af vente- og underretningsmetoder. Det involverer også deling af objekter mellem to tråde.


24) Hvordan kan flere tråde styres samtidigt?

Flere tråde kan styres samtidigt, hvis de er oprettet i et ThreadGroup-objekt.


25) Hvad er en blokeringsmetode i Java?

I Java er blokeringsmetode en metode, der blokerer, indtil opgaven er udført. Accepter for eksempel () metoden for ServerSocket-blokke indtil det tidspunkt, hvor en klient er tilsluttet. Her henviser blokering til alt, som kontrollen ikke vil vende tilbage til den, der ringer, før opgaven er overstået.


26) Hvad er den største forskel mellem vente () og søvn () metode?

Vente() Søvn()
Denne metode er defineret i klassen Object Metoden er defineret i trådklassen
Wait()-metoden frigiver låsen Denne metode udløser aldrig låsen.

27) Hvad er et uforanderligt objekt? Hvordan kan det hjælpe med at skrive en samtidig ansøgning?

Ethvert objekt kan betragtes som uanfægteligt, hvis dets tilstand ikke ændres, efter at det er konstrueret. Uforanderlige objekter bruges til at skabe enkle, pålidelige og samtidige applikationer.

For at skabe et objekt, der er uforanderligt, er det vigtigt at gøre klassen og dens medlem endelige, så når først objekter er oprettet, ændres dens tilstand ikke.


28) Fortæl mig forskellen mellem at give efter og at sove?

Når en opgave påkalder sin yield()-metode, vender den tilbage til klar-tilstanden.

Når en opgave påkalder sin sleep()-metode, vender den tilbage til ventetilstanden.


29) Hvad er ThreadPool?

ThreadPool er en pulje af tråde, der genbruger et fast antal tråde til at udføre den specifikke opgave.


30) Hvad er brugen af ​​Synchronized keyword?

Synkroniseret nøgleord kan anvendes enten på den statiske eller ikke-statiske metode. Ved at bruge Synkroniseret kan kun én tråd få adgang til synkroniserede metoder. Men i den situation, hvor der er flere tråde, der forsøger at få adgang til den samme metode. På det tidspunkt skal andre tråde vente på udførelsestråden. Det giver også en lås på objektet for at forhindre en race tilstand.

public void synchronized method1(){}

public void synchronized staticmethod1(){}

public void myMethod(){

synchronized (this){

//synchronized keyword on block of code

}

}

31) Hvad er et flygtigt søgeord?

Flygtigt nøgleord er en kvalifikator, som anvendes på en variabel, når den erklæres. Det fortæller compileren, at værdien af ​​variablen kan ændre sig til enhver tid - uden at der foretages nogen handling af koden.


32) Hvad er de vigtigste forskelle mellem notify og notifyAll i Java?

Notify ()-metoden giver ikke nogen måde at vælge en bestemt tråd på, derfor er den kun nyttig, når en enkelt While notifyAll() sender en notifikation til alle tråde. Det giver dem også mulighed for at konkurrere om låse. Det sikrer også, at mindst én tråd kommer videre.


33) Hvilken JVM-parameter bruges til at styre stackstørrelsen på en tråd?

For at kontrollere stackstørrelsen på tråden i Java bruges Xss parameter.


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

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


35) Hvad er formålet med at bruge udbyttemetoden af ​​trådklasse?

Yield-metoden er den enkleste måde at anmode om den aktuelle tråd om at afgive CPU, så den anden tråd. Det er en statisk metode og garanterer kun, at den aktuelle tråd vil afgive CPU'en, men fortæller ikke noget om, hvilken anden tråd der også påvirker CPU'en.


36) Hvornår kan vi sige, at tråde ikke er letvægtsprocesser i java?

Tråde er ikke letvægtsprocesser, når tråde af samme proces udføres samtidigt. Selvom tråde af forskellige processer udføres samtidigt på det tidspunkt, bliver tråde en sværvægtsproces.


37) Kan det være muligt at synkronisere konstruktøren af ​​en Java-klasse?

Som Java Standard kan konstruktører ikke synkroniseres, da andre tråde ikke kan se objektet, før trådoprettelsesprocessen har afsluttet det. Der er ikke behov for at Java Objects constructor skal synkroniseres, da det ville låse det objekt, der konstrueres.


38) Hvad er transient variabel?

En forbigående variabel er en variabel, der ikke kan serialiseres under serialisering. Den initialiseres til sin standardværdi under serialiseringen.

Disse interviewspørgsmål vil også hjælpe i din viva(orals)

Del

4 Kommentarer

  1. Avatar java træning siger:

    Hii
    det hjælper mig virkelig. under interviewforberedelsen.
    Det er virkelig prisværdigt at skrive denne artikel og give denne information.
    Icommnedable til

  2. Avatar Shwethashree Venkatesh siger:

    5) Hvad er trådtilstandene?
    Kørbar er ikke køretilstand. Den er klar til at køre

    1. opdateret! Tak fordi du gjorde opmærksom på dette

    2. Avatar Amuda Adeolu Badmus siger:

      1. Kørbare tilstande ses som et dobbeltlag på OS-niveau

      2.Næsten alle programmeringssprog ser tråden som kørebar eller IKKE.

      3. En løbbar tråd kan enten være i tilstanden (klar eller kørende).

      4. Du kan have to tråde i tilstande, der kan køres, men kun én tråd vil eksistere i tilstanden "kørende",
      mens den anden tråd eksisterer i en "løbende" tilstand.

Giv en kommentar

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *