Introduktion til Java Multi-threading Interview Spørgsmål og svar

Java er i boom i disse dage på grund af sin uafhængige platform. Det kan køres overalt, og derfor bruges det bredt med forskellige kommende teknologier. For at være forberedt på det, er multi-threading et vigtigt emne, der er fokuseret på interviews. Så du har endelig fundet dit drømmejob i Java Multi-threading, men spekulerer på, hvordan du sprækker interviewet, og hvad der kan være den sandsynlige Java Multi-threading Interviewspørgsmål. Hver samtale er forskellig, og omfanget af et job er også anderledes. Lad os gennemgå et par vigtige Java Multi-threading Interview Spørgsmål, der kan stilles i Java Multi-threading interviews, som du vil forfølge.

Nedenfor er de øverste Java Multi-threading Interview Spørgsmål og svar

1.Hvad er tråd i JAVA, og hvordan implementerer du det?

Svar:
En tråd hjælper med at lette multi-tasking og multi-behandling inden for et program. Det bruger CPU effektivt og hjælper med at forbedre applikationens ydelse. Java gør det muligt for brugeren at bruge flere tråde ad gangen. Det kan køre parallelt med andre programmer uden afbrydelser. Dette hjælper med at reducere en tid til processen. For eksempel, hvis et program tager 60 sekunder at udføre, kan vi bruge 6 tråde, der giver os resultatet på 10 sekunder.

Java giver to måder at implementere tråd i et program. interface java.lang.Runnable har en instans java.lang.A tråd, der kræver en opgave at udføre gennem en instans. Trådklassen implementerer allerede Runnable, så en bruger kan direkte tilsidesætte run () -metoden ved at udvide trådklassen eller ved at implementere Runnable interface.

2. Hvornår skal man bruge Runnable, og hvornår skal man bruge tråd i Java?

Svar:
Java understøtter ikke flere arv fra en klasse, men det giver mulighed for at implementere flere grænseflader ad gangen. Derfor vil det være bedre at implementere Runnable end at udvide trådklassen.

3. Hvordan skiller du mellem en tråd og en proces?

Svar:
En tråd er en delmængde af en proces. En proces kan have flere tråde, der kører til den. Tråde kan køre enhver del af en proces. En proces har sin egen adresse, hvor den er gemt, mens tråd deler adressen på processen, der har oprettet den. Oprettelse af en proces er en hektisk proces, mens tråde nemt kan oprettes. En tråd omtales normalt som en letvægtsproces. Interprocesskommunikation er vanskelig, mens trådene let kan kommunikere ved hjælp af Java-metoderne til at vente () og give besked (). Processer er uafhængige, hvorfor enhver ændring i processen påvirker ikke børneprocesser. Tværtimod, hvis der foretages ændringer i en tråd, er der muligheder for, at andre tråde kan blive påvirket.

4. Hvorfor siges det, at trådadfærd er uforudsigelig?

Svar:
Årsagen til dette er trådplanlæggeren, der håndterer udførelsen af ​​tråde. Planlæggeren har måske forskellige ydelser på forskellige platforme Windows, UNIX, LINUX osv. Mens udførelsen af ​​den samme tråd kan det give forskellige output på forskellige platforme og nogle gange endda på den samme platform. For at løse dette kan en bruger oprette det samme Kørbare objekt, oprette løb () -sløjfer i begge tråde og starte begge tråde sammen. Ideelt set skal planlæggeren vælge begge tråde sammen, og ydelsen bør ikke påvirkes, men begge tråde indtastes løkker anonymt.

5. Hvad er en flygtig variabel i Java, og hvad er dens betydning?

Svar:
Java letter brugeren at dele variabler, der findes i forskellige tråde. En flygtig variabel fungerer som en speciel modifikator, som kun kan bruges til for eksempel variabler. Da denne variabel deles, ville der være konsistente ændringer med den. Tråden skal sikre, at den har eksklusiv adgang til disse variabler, og en lås er tvunget til gensidig udelukkelse af delte variabler. Det sikrer, at en skrivning vil ske, inden der læses. Java-hukommelsesmodel sikrer konsistensen af ​​denne variabel. Flygtige metoder kan ikke være der, da de kun kan bruges i form af variabler.

6. Hvad bruges det synkroniserede nøgleord? Hvad er forskellen mellem synkroniserede og flygtige søgeord?

Svar:
Det synkroniserede nøgleord bruges, når formålet er at kun køre en tråd ad gangen i et passende kodesnit. Det kan bruges til at vise fire typer forskellige blokke som nedenfor:

1) Forekomstmetoder
2) Statiske metoder
3) Kodeblokke inden for forekomstmetoder
4) Kodeblokke inde i statiske metoder

Det kan erklæres som:

Eksempel på offentligt synkroniseret tomrum () ()

Forskellen mellem flygtigt og synkroniseret nøgleord er, at synkroniseret kan bruges med variabel og metoder, mens flygtige ikke kan bruges med metoder. Flygtige variabler gemmes ikke i cachehukommelsen, synkroniserede variabler gemmes i cachehukommelsen. En flygtig variabel lander aldrig i dødvande, da den ikke kræver nogen lås. Mens de er i synkroniserede variabler, hvis de ikke udføres korrekt, kan det ende i en deadlock.

7. Hvorfor findes metoder som vent (), underrette () og underrette alle () i objektklasse og ikke i trådklasse?

Svar:
Objektklasse har skærme, der gør det muligt for tråden at låse et objekt, mens tråd ikke har nogen skærme. Når en af ​​ovennævnte metoder kaldes, venter den på, at en anden tråd frigiver objektet og giver skærmen besked ved at kalde underret () eller give besked til alle (). Når der kaldes underretning () -metoden, gør det jobbet med at underrette alle tråde, der venter på, at objektet bliver frigivet. Objektklassens monitor kontrollerer for objektet, om det er tilgængeligt eller ikke. Trådklasse, der har disse metoder, ville ikke hjælpe, da der findes flere tråde på et objekt og ikke omvendt.

8. Forklar forskellen mellem søvn () og vent () metoder.

Svar:
1) sleep () -metoden kaldes på tråde og ikke på objekter. Vent () -metoden kaldes på objekter.
2) Når vent () -metoden kaldes, flytter skærmen tråden fra kørsel til ventetilstand. Når en tråd er i vente (), kan den kun flytte til kørbar, når den har underrettet () eller notifyall () for det pågældende objekt. Planlæggeren ændrer tilstanden efter dette. Når du er i søvn () -metoden, ændres tilstanden til at vente og vil vende tilbage til kørbar først efter at søvntiden er forbi.
3) Vent () -metoden er en del af java.lang.Object-klassen, mens søvn () er en del af java.lang.Thread-klassen.
4) Vent () bruges altid med en synkroniseret blok, da det kræver at låse en genstand, mens søvn () kan bruges udefra synkroniseret blok.

9. Hvordan tvinges start af en tråd i Java?

Svar:
I Java kan multithreading en ikke tvinge til at starte en tråd. Kun trådplanlægning kan kontrollere tråde, og de udsættes ikke for nogen API til kontrol.

10. Forlader tråd genstandslåsning, når der ventes () og sleep () -metoder?

Svar:
Når en tråd er i dvale () -metode, forlader den ikke lås og bevæger sig i ventetilstand. Tråden venter på, at søvntiden kommer over. Når der bruges vent () -metode, forlader tråd objektets lås og går i ventetilstand. Når meddelelse () kaldes, går den igen til kørselstilstand og erhverver låsen.

Anbefalet artikel

Dette har været en guide til Liste over Java-trådede intervjuspørgsmål og svar, så kandidaten nemt kan slå sammen disse Java-trådtrådede interviewspørgsmål. Du kan også se på de følgende artikler for at lære mere -

  1. Java-udviklingsintervjuespørgsmål - Sådan knækkes top 7 spørgsmål
  2. Omfattende guide til Java-appudvikling (Awesome Theory)
  3. Maven Interview Spørgsmål og svar | Top og mest stillede
  4. 10 avancerede AngularJS-interviewspørgsmål til erfarne