Introduktion till Java Intervjufrågor och svar med flera trådar

Java är på väg i dessa dagar på grund av sin oberoende plattform. Det kan köras var som helst och används därför ofta med olika kommande tekniker. För att vara beredd på det är multigängning ett viktigt ämne som är inriktad på intervjuer. Så du har äntligen hittat ditt drömjobb i Java Multi-threading men undrar hur du ska knäcka intervjun och vad som kan vara den troliga Java Multi-threading Intervjufrågor. Varje intervju är annorlunda och omfattningen av ett jobb är också annorlunda. Låt oss gå igenom några viktiga intervjufrågor i Java med flera trådar som kan ställas i Java-intervjuerna med flera trådar som du skulle göra.

Nedan visas de översta Java-intervjuerna frågor och svar på Java

1. Vad är tråd i JAVA och hur implementerar du det?

Svar:
En tråd hjälper till att underlätta multi-tasking och multi-processor inom ett program. Den använder CPU effektivt och hjälper till att förbättra prestandan för applikationen. Java gör det möjligt för användaren att använda flera trådar åt gången. Det kan köras parallellt med andra program utan några avbrott. Detta hjälper till att minska tiden för processen. Till exempel, om ett program tar 60 sekunder att köra, kan vi använda 6 trådar som ger oss resultatet på 10 sekunder.

Java ger två sätt att implementera tråd i ett program. interface java.lang.Runnable har en instans java.lang.A-tråd som kräver en uppgift att köra genom en instans. Trådklassen implementerar redan Runnable, så en användare kan direkt åsidosätta metoden för körning () genom att utöka trådklassen eller genom att implementera Runnable interface.

2. När ska jag använda Runnable och när ska man använda tråd i Java?

Svar:
Java stöder inte flera arv från en klass, men det tillåter att implementera flera gränssnitt åt gången. Därför är det bättre att implementera Runnable än att utöka trådklassen.

3. Hur skiljer du mellan en tråd och en process?

Svar:
En tråd är en delmängd av en process. En process kan ha flera trådar som körs för den. Trådar kan köra vilken som helst del av en process. En process har sin egen adress där den lagras, medan tråd delar adressen till processen som har skapat den. Att skapa en process är en hektisk process medan trådar enkelt kan skapas. En tråd kallas vanligtvis en lättprocess. Interprocesskommunikation är svårt medan trådar enkelt kan kommunicera med Java-metoderna för att vänta () och meddela (). Processer är oberoende, därför påverkar inte alla förändringar i processen barnprocesser. Tvärtom, om ändringar görs i en tråd finns det möjligheter att andra trådar kan påverkas.

4. Varför sägs det att trådbeteende är oförutsägbart?

Svar:
Anledningen till detta är tråd schemaläggaren som hanterar exekvering av trådar. Schemaläggaren kanske har olika prestanda på olika plattformar Windows, UNIX, LINUX, etc. Medan du kör samma tråd kan det ge olika resultat på olika plattformar och ibland till och med på samma plattform. För att lösa detta kan en användare skapa samma Runnable-objekt, skapa run () -slingor i båda trådarna och starta båda trådarna tillsammans. Helst bör schemaläggaren välja båda trådarna tillsammans och prestandan bör inte påverkas, men båda trådarna kommer in i looparna anonymt.

5. Vad är en flyktig variabel i Java och vad är dess betydelse?

Svar:
Java underlättar användaren att dela variabler som finns i olika trådar. En flyktig variabel fungerar som en speciell modifierare som endast kan användas för exempelvis variabler. Eftersom denna variabel delas skulle det vara konsekventa förändringar med den. Tråden måste se till att den har exklusiv åtkomst till dessa variabler och att ett lås tvingas för ömsesidig uteslutning av delade variabler. Det säkerställer att en skrivning kommer att ske innan varje följd läses. Java-minnesmodell säkerställer konsistensen hos denna variabel. Flyktiga metoder kan inte finnas där de kan endast användas i form av variabler.

6. Vad använder jag av synkroniserat nyckelord? Vad är skillnaden mellan synkroniserade och flyktiga sökord?

Svar:
Det synkroniserade nyckelordet används när syftet är att bara köra en tråd åt gången i ett lämpligt kodavsnitt. Det kan användas för att visa fyra typer av olika block som nedan:

1) Instansmetoder
2) Statiska metoder
3) Kod blockerar instansmetoder
4) Kodblock inuti statiska metoder

Det kan förklaras som:

Exempel på offentligt synkroniserat tomrum () ()

Skillnaden mellan flyktiga och synkroniserade nyckelord är att synkroniserad kan användas med variabla och metoder, medan flyktiga inte kan användas med metoder. Flyktiga variabler lagras inte i cacheminnet, synkroniserade variabler lagras i cacheminnet. En flyktig variabel kommer aldrig att landa i dödläge eftersom den inte kräver någon lås. I synkroniserade variabler om de inte görs ordentligt kan det hamna i ett dödläge.

7. Varför metoder som vänta (), meddela () och meddela alla () finns i objektklass och inte i trådklassen?

Svar:
Objektklass har bildskärmar som låter tråden låsa ett objekt, medan tråd inte har några bildskärmar. När någon av ovanstående metoder kallas väntar på att en annan tråd släpper objektet och meddelar monitorn genom att ringa meddela () eller meddela alla (). När metod () meddelas kallas det gör jobbet med att meddela alla trådar som väntar på att objektet ska släppas. Objektklassens monitor kontrollerar om objektet är tillgängligt eller inte. Trådklass med dessa metoder skulle inte hjälpa eftersom flera trådar finns på ett objekt och inte tvärtom.

8. Förklara skillnaden mellan sömn () och vänta () metoder.

Svar:
1) sleep () -metoden kallas för trådar och inte föremål. Wait () -metoden kallas på objekt.
2) När man väntar () -metoden, flyttar bildskärmen tråden från körning till väntetillstånd. När en tråd är i väntetid () kan den flytta till körbar endast när den har meddelat () eller meddelandeall () för det objektet. Schemaläggaren ändrar tillståndet efter detta. När du är i sömn () -metoden ändras tillståndet för att vänta och kommer att återgå till körbart först efter att sömntiden är över.
3) Wait () -metoden är en del av java.lang.Oject-klassen, medan sömn () är en del av java.lang.Tread-klassen.
4) Vänta () används alltid med ett synkroniserat block eftersom det krävs för att låsa ett objekt medan sömn () kan användas från synkroniserat block utanför.

9. Hur tvingas starta en tråd i Java?

Svar:
I Java kan inte flertrådning en tvinga att starta en tråd. Endast trådplanering kan kontrollera trådar och de utsätts inte för något API för kontroll.

10. Lämnar gängan objektlås när metoderna vänta () och sömn () kallas?

Svar:
När en tråd är i sömn () -metod lämnar den inte låset och flyttar till väntetillstånd. Tråden väntar på att sömntiden kommer över. När man använder metoden (vänta) lämnar tråd trådlåset och går i väntetillstånd. När meddelandet () kallas går det igen till körläge och förvärvar låset.

Rekommenderad artikel

Detta har varit en guide till Lista över intervjufrågor och svar på Java med flera trådar, så att kandidaten enkelt kan slå samman dessa intervjufrågor för Java. Du kan också titta på följande artiklar för att lära dig mer -

  1. Java-utvecklingsintervjufrågor - Hur man knäcker topp 7 frågor
  2. Omfattande guide till Java-apputveckling (Awesome Theory)
  3. Maven intervjufrågor och svar | Topp och mest frågade
  4. 10 avancerade AngularJS intervjufrågor för erfarna