Introduktion Java Interview spørgsmål og svar om multithreading

Før vi går videre til Java-interviewspørgsmål om multithreading, lad os diskutere noget om nogle fakta om multithreading.

# 1 - Så vi skal først vide, hvad der er tråden?

Det er den mindste enhed til behandling af et bestemt værk kaldes en tråd. Det er en letvægts art, så let at bruge. Nu tænker vi på, at hvorfor vi skulle have brug for det, bruges multithreading til at opnå multitasking. Multitasking kunne også opnås på en anden måde, og det er kendt som Multiprocessing.

Multithreading er dog mere populær, og det er effektivt at bruge over multiprocessering, fordi trådene har egenskaber, som de bruger et delt hukommelsesområde, mens det i tilfælde af multiproces bruger en masse hukommelse og andre ressourcer, som ikke er effektive.

Så processen med at udføre flere tråde samtidigt for at udføre noget arbejde kaldes multithreading.

Nogle fordele ved at bruge multithreading:

  • Tråde fungerer uafhængigt, så det er uafhængigt af andre operationer, der foregår i systemerne, og det er således muligt at udføre flere operationer på samme tid.
  • Tidsforbrug er mindre ved brug af multitrådning, da mange operationer kan udføres samtidig.
  • Tråde er uafhængige som allerede omtalt, så en undtagelse forekommer i en enkelt tråd vil ikke forstyrre driften af ​​andre tråde.
  • Udgifter til kommunikation mellem to tråde er lave.

Vi kan opnå multitasking på følgende to måder:

  • Procesbaseret multitasking (multiprocessing)
  • Trådbaseret multitasking (multithreading)

BEMÆRK: Når vi diskuterer multithreading, vil vi fokusere på trådbaseret multitasking.

Livscyklus af en tråd:

  • Ny
  • Runnable
  • Løb
  • Ikke-kørbar (blokeret)
  • opsagte

BEMÆRK: For din reference og bedre forståelse skal du gennemgå nedenstående billede omhyggeligt.

# 2 - Hvordan tråde oprettes?

Nu er dette det vigtigste og det første punkt, hvormed vi kan oprette tråden. Der er to måder, hvorpå der kan oprettes tråde, der diskuteres nedenfor:

  • Ved at udvide trådklassen
  • Ved at implementere det Runnable interface

BEMÆRK:

Når der blev oprettet en ny tråd, udføres følgende opgaver:

  1. I en ny opkaldsstabel oprettes en tråd.
  2. Tråden ændrer sin tilstand fra Ny til Kørbar.
  3. Når tråden startes, finder den køremetoden () og derefter kører den.

EKSEMPEL:

By extending Thread class
class MyThread extends Thread
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread t1=new MyThread ();
t1.start();
)
)

EKSEMPEL:
By implementing Runnable interface
class MyThread implements Runnable
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread m1=new MyThread ();
Thread t1 =new Thread(m1);
t1.start();
)
)

BEMÆRK: Vær opmærksom på forskellen i ovenstående to eksempler. Den største forskel i de to ovenstående eksempler er, at hvis vi ikke udvider tråden, snarere prøver vi at oprette tråd ved at implementere Runnable-grænsefladen og klassificere start () -metoden for at starte tråden, så oprettes tråden ikke i en ny opkaldsstabel da det ikke identificeres som en tråd.

Så for at få det til at identificere som tråd, skal vi videregive forekomsten af ​​klassen, hvor vi har implementeret Runnable-grænsefladen som et argument til konstruktøren af ​​trådklassen, og så skal vi kalde metoden start ().

Planlægning i tråd:

Som de alle ved, betyder denne tidsplan at udføre en plan for en opgave på et bestemt tidspunkt.

Trådplanlægning er en lignende mekanisme til planlægning af en bestemt tråd, der opretholder nogle protokoller. Der er to forskellige måder, hvorpå trådplanlægning fungerer i Java.

  • Forhindringsplanlægning
  • Tidssnit.

Forhindringsplanlægning:

JMV beslutter den højeste prioriterede opgave og starter udførelsen, indtil den går ind i de ventende eller døde tilstande, eller der opstår en højere prioriteret opgave.

Tidsskæring:

JVM begynde at udføre en bestemt tråd i en bestemt periode og derefter flytte den samme tråd til puljen og vælge anden tråd baseret på prioritet og andre faktorer til henrettelser. Denne proces fortsætter, indtil al tråden afslutter sin proces.

Nu, hvis du leder efter et job, der er relateret til Java Multithreading, er du nødt til at forberede dig på Java-interviewspørgsmålene 2018 om Multithreading. Det er sandt, at hvert interview er forskelligt i henhold til de forskellige jobprofiler. Her har vi forberedt de vigtige Java-interviewspørgsmål og svar om multithreading, som vil hjælpe dig med at få succes i dit interview.

I denne 2018-interviewspørgsmål om multithreading-artikel skal vi præsentere 10 vigtigste og ofte stillede Java-interviewspørgsmål om multithreading. Disse interviewspørgsmål er delt i to dele er som følger:

Del 1 - Java-interviewspørgsmål om multithreading (grundlæggende)

Denne første del dækker de grundlæggende Java-interviewspørgsmål og svar om multithreading.

Q1. Skelne mellem proces og tråd?

Svar:
En proces er et program eller en applikation, hvorimod tråd er en enkelt opgave, der skal udføres inden for en proces. Tråden er en letvægt, mens processen er tungvægt. Tråd kræver mindre, hvorimod proces kræver mere ressource, derfor kaldes den tungt vægtet i naturen.

Q2. Skelne mellem brugertråd og daemontråd?

Svar:
En tråd oprettet i java kaldes brugertråd. En Daemon-tråd kører altid i baggrunden, og dens komplette livscyklus afhænger af hovedtråden. En dæmontråd, der kører i baggrunden, forhindrer ikke JVM i at afslutte den. Undertråd oprettet fra en daemontråd vil også være en daemontråd.

Lad os gå til de næste Java-interviewspørgsmål om multithreading.

Q3. Den forskellige måde at oprette en tråd på Java?

Svar:
Tråde i Java kan oprettes på to måder:

  • Ved at udvide trådklassen.
  • Ved at implementere Runnable Interface.

Q4. Hvad er trådens livscyklus?

Svar:
Dette er de almindelige Java-interviewspørgsmål om multithreading, der stilles i et interview. Følgende er livets cyklus for en tråd:

  • Ny
  • Runnable.
  • Løb.
  • Blokeret.
  • Afsluttes.

Q5. Hvad sker der, hvis vi kalder run () -metoden for en trådklasse?

Svar:
Når du ringer til køremetoden () direkte, kompileres og udføres programmet med succes, men det samme program vil ikke blive behandlet som tråd, fordi der ikke oprettes nogen ny opkaldsstabel, og programmet starter dens udførelse i den samme opkaldsstabel, hvor hovedmenuen kører.

For at oprette tråd, som skal køre med en ny opkaldsstabel, skal man bruge metoden start () i trådklassen.

Del 2 - Java-interviewspørgsmål om multithreading (avanceret)

Lad os nu se på de avancerede Java-interviewspørgsmål og svar om multithreading.

Q6. Kan vi sætte en gang på udførelsen af ​​en tråd på et bestemt tidspunkt?

Svar:
Ja, dette kan opnås i java ved at kalde søvnen () fra trådklassen. Sleep () -metoden tager også et argument, der angiver tid i millisekunder.

Q7. Hvordan kan vi opnå planlægning af tråd i java?

Svar:
Ja, trådplanlægning i java er mulig. Tråde i Java kan planlægges på to måder, dvs. tidsskæring og forhåndsplanlægning.

Lad os gå til de næste Java-interviewspørgsmål om multithreading.

Q8. Kan en tråd startes to gange?

Svar:
Nej, en tråd kan ikke startes to gange. Hvis vi prøver at starte en tråd to gange, kaster den “java.lang.IllegalThreadStateException”.

Q9. Hvad er shutdown hook i Java?

Svar:
Dette er de mest populære Java-interviewspørgsmål om multithreading, der stilles i et interview. En lukningskrog er en mekanisme, der bruges til oprydningsressourcer, når JVM lukkes normalt eller pludseligt.

Q10. Hvad er flygtigt?

Svar:
Flygtig er et nøgleord i java, og det kan bruges med variabler. Hvis en variabel er erklæret som flygtig, vil alle tråde læse værdien af ​​den samme variabel fra hovedhukommelsen snarere end fra cachen, så det forhindrer fejllæsning, når flere tråde bruger den samme variabel i deres operationer.

Anbefalede artikler

Dette har været en guide til listen over Java-interviewspørgsmål og svar på multithreading, så kandidaten let kan slå sammen disse Java Interview-spørgsmål om multithreading. Her i dette indlæg har vi undersøgt top Java-interviewspørgsmål om multithreading, som ofte stilles i interviews. Du kan også se på de følgende artikler for at lære mere -

  1. Datastruktur Java Interview spørgsmål
  2. Ups Java Interview spørgsmål
  3. Multithreading Interview spørgsmål i Java
  4. Spørgsmål om Java Testing Interview