Introduktion Java-intervjufrågor och svar på multithreading

Innan vi går vidare till Java-intervjufrågor om multithreading, låt oss diskutera något om några fakta om multithreading.

# 1 - Så vi borde veta först vad är tråden?

Det är den minsta enheten för bearbetning av ett visst verk som kallas en tråd. Det är en lätt i naturen så lätt att använda. Nu tänker vi på att varför vi borde behöva det, används multithreading för att uppnå multitasking. Multitasking kan också uppnås på ett annat sätt och det kallas Multiprocessing.

Men flertrådning är mer populärt och det är effektivt att använda över multiprocessering eftersom trådar har egenskaper som det använder ett delat minnesområde medan det vid flera processer förbrukar mycket minne och andra resurser som inte är effektiva.

Så processen att utföra flera trådar samtidigt för att utföra lite arbete kallas multithreading.

Några fördelar med att använda multithreading:

  • Trådar fungerar oberoende så det är oberoende av andra operationer som går i systemen och det är därför möjligt att utföra flera operationer samtidigt.
  • Tidsförbrukningen är mindre med användning av multiträdning eftersom många operationer kan utföras samtidigt.
  • Trådar är oberoende som redan diskuterats, så ett undantag inträffar i en enda tråd kommer inte att störa funktionerna i andra trådar.
  • Kostnaden för kommunikation mellan två trådar är låg.

Vi kan uppnå multitasking på följande två sätt:

  • Processbaserad multitasking (multiprocessing)
  • Trådbaserad multitasking (multithreading)

OBS: När vi diskuterar multitrådning kommer vi att fokusera på trådbaserad multitasking.

Trådens livscykel:

  • Ny
  • Runnable
  • Löpning
  • Icke-körbar (blockerad)
  • avslutas

OBS: För din referens och bättre förståelse, gå igenom bilden nedan noggrant.

# 2 - Hur trådar skapas?

Nu är detta den viktigaste och den första punkten med vilken vi kan skapa tråden. Det finns två sätt på vilka trådar kan skapas som diskuteras nedan:

  • Genom att utöka trådklassen
  • Genom att implementera Runnable-gränssnittet

NOTERA:

När en ny tråd skapades utförs följande uppgifter:

  1. I en ny samlingsstapel skapas en tråd.
  2. Tråden ändrar sitt tillstånd från nytt till körbart.
  3. När tråden startas hittar den metoden run () och sedan kör den.

EXEMPEL:

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();
)
)

EXEMPEL:
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();
)
)

OBS: Tänk på skillnaden i ovanstående två exempel. Huvudskillnaden i de två exemplen ovan är att om vi inte utökar tråd snarare försöker vi skapa tråd genom att implementera Runnable-gränssnittet och klassificera metoden start () för att starta tråden kommer inte tråden att skapas i en ny samlingsstack eftersom det inte kommer att identifieras som en tråd.

Så för att det ska kunna identifieras som tråd måste vi passera instansen för klassen där vi har implementerat det körbara gränssnittet som ett argument till konstruktören för trådklassen och sedan måste vi kalla metoden start ().

Schemaläggning i tråd:

Som de alla vet att schema innebär att göra en plan för en uppgift vid en viss tidpunkt.

Trådplanering är en liknande mekanism för schemaläggning av en viss tråd som upprätthåller vissa protokoll. Det finns två olika sätt på vilka trådplanering fungerar i Java.

  • Förhandsplanering
  • Tidskivning.

Förhandsplanering:

JMV bestämmer den högsta prioriterade uppgiften och startar körningen tills den går in i de väntande eller döda tillstånden eller en högre prioriterad uppgift kommer in.

Tidsskivning:

JVM börja köra en viss tråd under en viss tidsperiod och flytta sedan samma tråd till poolen och välj annan tråd baserad på prioritering och andra faktorer för körningar. Denna process fortsätter tills hela tråden avslutar sin process.

Nu, om du letar efter ett jobb som är relaterat till Java Multithreading måste du förbereda dig för 2018-intervjufrågorna om Multithreading. Det är sant att varje intervju är olika enligt de olika jobbprofilerna. Här har vi förberett viktiga frågor om Java-intervjuer och svar på Multithreading som hjälper dig att få framgång i din intervju.

I denna Java-intervjufråga 2018 om multithreading-artikeln kommer vi att presentera 10 viktigaste och vanliga frågor om Java-intervjuer om multithreading. Dessa intervjufrågor är indelade i två delar är följande:

Del 1 - Java-intervjufrågor om multitrådning (grundläggande)

Den här första delen täcker de grundläggande frågorna och svaren på Java-intervjuer om multithreading.

Q1. Skilja mellan process och tråd?

Svar:
En process är ett program eller en applikation medan tråd är en enda uppgift som ska utföras inom en process. Tråden är en lätt medan processen är tungvikt. Tråd kräver mindre medan Process kräver mer resurs, därför betecknas den som tungt viktad i naturen.

Q2. Skilja mellan användartråd och daemontråd?

Svar:
En tråd skapad i java benämns användartråd. En Daemon-tråd går alltid i bakgrunden och dess hela livscykel beror på huvudtråden. En daemontråd som körs i bakgrunden hindrar inte JVM från att avsluta den. Barntråd skapad från en daemontråd kommer också att vara en daemontråd.

Låt oss gå till nästa Java-intervjufrågor om multithreading.

Q3. Det olika sättet att skapa en tråd i Java?

Svar:
Trådar i Java kan skapas på två sätt:

  • Genom att utöka trådklassen.
  • Genom att implementera Runnable Interface.

Q4. Vad är livscykeln för tråd?

Svar:
Detta är de vanliga Java-intervjufrågorna om multithreading som ställs i en intervju. Följande är livscykeln för en tråd:

  • Ny
  • Runnable.
  • Löpning.
  • Blockerad.
  • Avslutas.

Q5. Vad händer om vi kallar run () -metoden för en trådklass?

Svar:
Om du ringer direkt () -metoden direkt kommer kompilering och körning av programmet framgångsrikt men samma program behandlas inte som tråd eftersom ingen ny samlingsstapel skapas och programmet startar dess körning i samma samtalstack som huvudmenyn kör.

För att skapa tråd som ska köras med en ny samtalstack måste man använda metoden start () i trådklassen.

Del 2 - Java-intervjufrågor om multithreading (avancerat)

Låt oss nu titta på de avancerade frågorna och svaren på Java-intervjuer om multithreading.

Q6. Kan vi pausa körningen av en tråd på en viss tid?

Svar:
Ja, detta kan uppnås i java genom att ringa sömnen () från trådklassen. Sleep () -metoden tar också ett argument som indikerar tid i millisekunder.

Q7. Hur kan vi uppnå schemaläggning av tråd i java?

Svar:
Ja, trådplanering i java är möjlig. Trådar i Java kan schemaläggas på två sätt, dvs tidsskivning och förhandsplanering.

Låt oss gå till nästa Java-intervjufrågor om multithreading.

Q8. Kan en tråd startas två gånger?

Svar:
Nej, en tråd kan inte startas två gånger. Om vi ​​försöker starta en tråd två gånger kommer det att kasta “java.lang.IllegalThreadStateException”.

Q9. Vad är avstängningskroken i Java?

Svar:
Detta är de mest populära Java-intervjufrågorna om multithreading som ställs i en intervju. En avstängningskrok är en mekanism som används för saneringsresurser när JVM stängs normalt eller abrupt.

Q10. Vad är flyktigt?

Svar:
Volatile är ett nyckelord i java och det kan användas med variabler. Om en variabel deklareras som flyktig kommer alla trådar att läsa värdet på samma variabel från huvudminnet snarare än från cachen, vilket förhindrar felavläsning när flera trådar använder samma variabel i sina operationer.

Rekommenderade artiklar

Detta har varit en guide till listan över Java-intervjufrågor och svar på Multithreading så att kandidaten enkelt kan slå samman dessa Java Interview-frågor om Multithreading. Här i det här inlägget har vi studerat de bästa Java-intervjufrågorna om multithreading som ofta ställs i intervjuer. Du kan också titta på följande artiklar för att lära dig mer -

  1. Datastruktur Java-intervjufrågor
  2. Oj, Java-intervjufrågor
  3. Flera avläsningsintervjuer i Java
  4. Java-testintervjufrågor