Innledning Java-intervju Spørsmål og svar om multithreading

Før vi går videre til Java-intervjuspørsmål om multithreading, la oss diskutere noe om noen fakta om multithreading.

# 1 - Så vi burde vite først hva som er tråden?

Det er den minste enheten for bearbeiding av et bestemt verk som kalles en tråd. Den er lett i naturen så enkel å bruke. Nå tenker vi at hvorfor vi bør trenge det, brukes multithreading for å oppnå multitasking. Multitasking kan også oppnås på en annen måte, og det er kjent som Multiprocessing.

Imidlertid er multithreading mer populært, og det er effektivt å bruke over multiprosessering fordi tråder har egenskaper som den bruker et delt minneområde, mens det i tilfelle av flere prosesser bruker mye minne og andre ressurser som ikke er effektive.

Så prosessen med å utføre flere tråder samtidig for å gjøre noe arbeid kalles multithreading.

Noen fordeler ved å bruke multithreading:

  • Tråder fungerer uavhengige slik at det er uavhengig av andre operasjoner som går i systemene, og dermed er det mulig å utføre flere operasjoner samtidig.
  • Tidsforbruk er mindre ved bruk av multetråd, ettersom mange operasjoner kan utføres samtidig.
  • Tråder er uavhengige som diskutert allerede, så et unntak forekommer i en enkelt tråd vil ikke forstyrre driften av andre tråder.
  • Kostnadene for kommunikasjon mellom to tråder er lave.

Vi kan oppnå multitasking på følgende to måter:

  • Prosessbasert multitasking (multiprocessing)
  • Trådbasert multitasking (multithreading)

MERKNAD: Når vi diskuterer multetråd, vil vi fokusere på trådbasert multitasking.

Livssyklus av en tråd:

  • Ny
  • kjørbart
  • Løping
  • Ikke-kjørbar (blokkert)
  • Avsluttet

MERKNAD: For din referanse og bedre forståelse, gå nøye gjennom bildet nedenfor.

# 2 - Hvordan blir tråder opprettet?

Nå, dette er det viktigste og det første poenget som vi kan lage tråden på. Det er to måter som tråder kan opprettes på som diskuteres nedenfor:

  • Ved å utvide trådklassen
  • Ved å implementere det kjørbare grensesnittet

MERK:

Når en ny tråd ble opprettet, utføres følgende oppgaver:

  1. I en ny samtalestabel opprettes en tråd.
  2. Tråden endrer tilstand fra ny til kjørbar.
  3. Når tråden blir startet, finner den kjøre () -metoden, og deretter kjøres 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();
)
)

MERKNAD: Vær oppmerksom på forskjellen i de to eksemplene ovenfor. Hovedforskjellen i de to eksemplene ovenfor er at hvis vi ikke utvider tråden, heller prøver vi å lage tråd ved å implementere Runnable-grensesnittet og klassifisere start () -metoden for å starte tråden, så vil ikke tråden bli opprettet i en ny anropsstabel da det ikke blir identifisert som en tråd.

Så for å få det til å identifisere seg som tråd, må vi passere forekomsten av klassen der vi har implementert det kjørbare grensesnittet som et argument til konstruktøren av trådklassen, og så må vi kalle start () -metoden.

Planlegging i tråd:

Som de alle vet at planen betyr å gjøre en plan for en oppgave på et bestemt tidspunkt.

Trådplanlegging er en lignende mekanisme for planlegging av en bestemt tråd som opprettholder noen protokoller. Det er to forskjellige måter som trådplanlegging fungerer i Java.

  • Forhåndsplanlegging
  • Tidssnitting.

Forhåndsplanlegging:

JMV bestemmer oppgaven med høyeste prioritet og starter utførelsen til den går inn i ventende eller døde tilstander eller en oppgave med høyere prioritering kommer til.

Tidssnitting:

JVM begynner å utføre en bestemt tråd i en bestemt periode og flytter deretter den samme tråden til bassenget og velg annen tråd basert på prioritering og andre faktorer for henrettelser. Denne prosessen fortsetter til all tråden avslutter prosessen.

Nå, hvis du leter etter en jobb som er relatert til Java Multithreading, må du forberede deg på 2018-intervjuet spørsmål om Multithreading. Det er sant at hvert intervju er forskjellig per de forskjellige jobbprofilene. Her har vi utarbeidet viktige spørsmål om Java-intervju og svar på multithreading som vil hjelpe deg å få suksess i intervjuet.

I denne Java Interview Questions on Multithreading-artikkelen 2018, skal vi presentere 10 viktigste og ofte stilte Java Interview Questions om Multithreading. Disse intervjuspørsmålene er delt inn i to deler er som følger:

Del 1 - Java-intervjuspørsmål om multithreading (grunnleggende)

Denne første delen dekker de grunnleggende spørsmålene om Java-intervju og svar på multithreading.

Q1. Skille mellom prosess og tråd?

Svar:
En prosess er et program eller en applikasjon, mens Tråd er en enkelt oppgave som skal utføres i en prosess. Tråden er en lett, mens prosessen er tungvektig. Tråd krever mindre mens prosess krever mer ressurs, og det betegnes som tungtvektet i naturen.

Q2. Skille mellom brukertråd og demontråd?

Svar:
En tråd opprettet i java betegnes som brukertråd. En Daemon-tråd kjører alltid i bakgrunnen, og dens komplette livssyklus avhenger av hovedtråden. En daemontråd som kjører i bakgrunnen, forhindrer ikke JVM fra å avslutte den. Undertråd opprettet fra en daemontråd vil også være en daemontråd.

La oss gå til de neste Java-intervjuspørsmålene om multithreading.

Q3. Den forskjellige måten å lage en tråd på Java?

Svar:
Tråder i Java kan opprettes på to måter:

  • Ved å utvide trådklassen.
  • Ved å implementere Runnable Interface.

Q4. Hva er livssyklusen til tråden?

Svar:
Dette er de vanlige spørsmålene om Java-intervjuer om multithreading som stilles i et intervju. Følgende er livssyklusen til en tråd:

  • Ny
  • Kjørbart.
  • Løping.
  • Blokkert.
  • Avsluttet.

Q5. Hva skjer hvis vi kaller run () -metoden for en trådklasse?

Svar:
Å ringe kjøremetoden () direkte vil kompilere og utføre programmet, men det samme programmet vil ikke bli behandlet som tråd fordi det ikke opprettes noen ny anropsstabel og programmet starter utførelsen i den samme anropsstabelen som hovedkjøreren kjører.

For å lage tråd som skal kjøres med en ny anropsstabel, må man bruke start () -metoden til trådklassen.

Del 2 - Java-intervjuspørsmål om multithreading (avansert)

La oss nå se på de avanserte spørsmålene og svarene om Java-intervju om multithreading.

Q6. Kan vi stoppe kjøringen av en tråd på et bestemt tidspunkt?

Svar:
Ja, dette kan oppnås i java ved å ringe søvnen () fra trådklassen. Sleep () -metoden tar også et argument som indikerer tid i millisekunder.

Q7. Hvordan kan vi oppnå planlegging av tråd i java?

Svar:
Ja, trådplanlegging i java er mulig. Tråder i Java kan planlegges på to måter, det vil si Time Slicing and Pre-emptive Scheduling.

La oss gå til de neste Java-intervjuspørsmålene om multithreading.

Q8. Kan en tråd startes to ganger?

Svar:
Nei, en tråd kan ikke startes to ganger. Hvis vi prøver å starte en tråd to ganger, vil den kaste “java.lang.IllegalThreadStateException”.

Q9. Hva er avstengningskroken i Java?

Svar:
Dette er de mest populære Java-intervjuspørsmålene om multithreading stilt i et intervju. En avstengningskrok er en mekanisme som brukes til opprydningsressurser når JVM slås av normalt eller brått.

Q10. Hva er flyktig?

Svar:
Flyktig er et nøkkelord i java, og det kan brukes med variabler. Hvis en variabel blir erklært som flyktig, vil alle trådene lese verdien av den samme variabelen fra hovedminnet i stedet for fra cachen. Dermed forhindrer den feillesing når flere tråder bruker den samme variabelen i sine operasjoner.

Anbefalte artikler

Dette har vært en guide til listen over Java-intervjuspørsmål og svar på multithreading, slik at kandidaten enkelt kan slå sammen disse Java-intervjuspørsmålene om multithreading. Her i dette innlegget har vi studert topp Java Interview Questions on Multithreading som ofte blir stilt i intervjuer. Du kan også se på følgende artikler for å lære mer -

  1. Datastruktur Java-intervjuspørsmål
  2. Ups Java-intervjuspørsmål
  3. Multithreading Interview Questions in Java
  4. Spørsmål om Java-testintervju