Topp 40 flertrådsintervjufrågor och svar (2025)
De bästa Java Multithreading-intervjufrågorna
Här är Intervjufrågor och svar med Multithreading Intervjufrågor för nybörjare såväl som erfarna kandidater för att få sitt drömjobb.
1) Vad är en tråd?
En tråd är en samtidig enhet för exekvering. Vi kan säga att det är en del av processen som lätt kan löpa samtidigt med andra delar av processen.
Gratis PDF-nedladdning: Flertrådsintervjufrågor och svar
2) Vad är multithreading?
multitrådning i Java är en process där två eller flera trådar körs samtidigt för maximalt utnyttjande av CPU.
Den största fördelen är:
- Trådar delar samma adressutrymme
- Tråden förblir lätt
- Kostnaden för kommunikation mellan trådar är låg.
3) Vilka tillstånd är associerade med tråden?
- Klar
- Springa
- väntar
- Dött tillstånd
4) Diskutera en tråds livscykel?
Livscykeln för en tråd liknar livscykeln för processer som körs i en operativsystem. Under sin livscykel kan tråden flytta från ett tillstånd till ett annat. Det beror dock på operationen som utförs på den.
5) Vad är trådens tillstånd?
Följande är de olika trådtillstånden:
Ny: En tråd som just instansierats är i det nya tillståndet. När en start()-metod anropas, blir tråden tillståndet redo. Sedan flyttas den till körbart tillstånd av trådschemaläggaren.
- Kan köras: En tråd som är redo att köras
- Löpning: En tråd som körs är i körläge.
- Blockerad: En blockerad tråd väntar på att ett monitorlås är i detta tillstånd. Detta kan också hända när en tråd utför en I/O-operation och flyttar till nästa tillstånd.
- Väntar: Det är en tråd som väntar på att en annan tråd ska göra den specifika åtgärden.
- Timed_waiting: Det är en tråd som väntar på att en annan tråd ska uppträda.
- Avslutad: En tråd som har avslutats är i detta tillstånd.
6) Vilka är de största skillnaderna mellan tråd och process?
Tråden är en delmängd av processen. Processen kan innehålla flera trådar. Processen kan köras på olika minnesutrymme, men alla trådar delar samma minnesutrymme.
7) Vad är dödläge?
Deadlock är en situation när en tråd väntar på ett objektlås, som förvärvas av en annan tråd och andra tråden också väntar på ett objektlås som förvärvas av den första tråden. Eftersom båda trådarna väntar på att varandra ska släppa kallas detta tillstånd dödläge.
8) Vad är LiveLock?
Livelock uppstår när alla trådar är blockerade och inte kan köras på grund av att nödvändiga resurser inte är tillgängliga och att det inte finns någon oblockerad tråd.
Livelock kan uppstå under följande förhållanden:
- När alla trådar i ett program körs på ett objekt med noll parametrar. Programmet är live-låst och bearbetas aldrig förrän en eller flera trådar anropar Object.notify () eller Object.notifyAll() på de relevanta objekten.
- Livelock händer också när alla trådar i ett program har fastnat i oändliga loopar.
9) Vad är en monitor?
- Monitorn är en kodkropp som endast kan köras av en tråd åt gången.
- Om någon annan tråd försöker få åtkomst samtidigt, kommer den att avbrytas tills den aktuella tråden släpper monitorn.
10) Vad menar du med trådsvält?
I situationen när en tråd inte har tillräcklig CPU för dess utförande inträffar trådsvält.
Det kan dock hända i följande scenarier
- Trådar med låg prioritet kommer att få mindre CPU jämfört med trådar med hög prioritet. Tråd med lägre prioritet kan svälta bort i väntan på att få mer CPU-utrymme för att utföra beräkningar.
- Tråden kan vänta på obestämd tid på ett lås på objektets monitor men notify() kan upprepade gånger väcka vissa andra trådar. I så fall svälter även tråd bort.
11) Vad är meningen med busy spin i multi-threading?
Busy spin är en teknik som samtidiga programmerare använder för att få en tråd att vänta på vissa villkor. Detta skiljer sig ganska mycket från traditionella metoder som wait() och sleep() som alla innebär att man avstår från CPU-kontrollen. Denna metod kräver inte att överge CPU, istället kör den bara den tomma slingan.
12) Vad är kontextväxling i multi-threading?
Det är processen att lagra och återställa CPU-tillstånd. Detta hjälper till Fortsätt trådutförande från samma punkt vid en senare tidpunkt. Det är en av de väsentliga funktionerna för multitasking-operativsystem och stöd för flertrådsmiljön.
13) Varför är trådens beteende oförutsägbart?
Vi kan säga att trådbeteendet är oförutsägbart eftersom exekveringen av trådar beror på trådschemaläggaren. Man bör komma ihåg att varje trådschemaläggare har en annan implementering på olika plattformar som Windows, Unix, etc.
14) Hur kan du pausa körningen av en tråd under en viss tid?
sleep () metod används för att pausa körningen av tråden under en viss tid. Detta kommer dock inte att stoppa behandlingen av tråden under en viss tid. Men när tråden vaknar från viloläge ändras dess tillstånd till körbar och baserat på trådschemaläggning, kommer den att köras.
15) På vilka många sätt kan en tråd gå in i vänteläge?
En tråd kan gå in i vänteläge på följande sätt
- Använder metoden sleep().
- Blockering på I/O
- Misslyckat försök att skaffa ett objekts lås
- Genom att anropa ett objekts wait()-metod
16) Vad händer om vi inte åsidosätter en körmetod?
I Java, när vi anropar start()-metoden på en tråd, anropar den internt run()-metoden med nyskapad tråd. Så om vi inte åsidosätter run( )-metoden kommer den nyskapade tråden inte att anropas så inget kommer att hända.
Exempelvis:
class MyThread extends Thread { //don't override run() method } public class DontOverrideRun { public static void main(String[] args) { System.out.println("main has started."); MyThread thread1=new MyThread(); thread1.start(); System.out.println("main has ended."); } }
17) Vad är den största skillnaden mellan Thread.start() & Thread?run()-metoden?
Thread.start()-metoden (inbyggd metod) i klassen Thread gör jobbet med att köra Thread.A run()-metoden i en tråd. Så, om vi direkt anropar Thread. The run()-metoden körs också i samma tråd. Det kommer alltså aldrig att lösa syftet med att skapa en ny tråd.
18) Hur skapar man en tråd i java?
Det finns två sätt att skapa en tråd i java.
- Först genom att implementera Runnable gränssnitt och sedan skapa ett trådobjekt från det.
- Den andra metoden är att utöka trådklassen.
19) Vad är meningen med trådprioritet?
Varje tråd har en prioritet. Men en högre prioritet får också företräde vid utförande. Men det beror också på Thread Scheduler-implementeringen som är OS-beroende. Det är möjligt att ändra trådens prioritet, men det ger ingen garanti för att tråden med högre prioritet kommer att exekveras först.
20) Vad fungerar join()-metoden?
Metoden join() väntar på att en tråd ska dö. Det tvingar alla löpande trådar att sluta köra tills tråden går med för att slutföra sitt jobb.
21) Vad är Java Shutdown Hook?
Java-avstängningskroken används för att rensa upp resurser när JVM stängs av. Rena resurser innebär att stänga loggfilen, skicka några varningar eller något annat. Shutdown hook måste användas för att exekvera kod innan JVM stängs av.
22) Vilka är de två huvudsakliga användningsområdena för volatile i Java?
Trådar tillåts hålla variablernas värden i lokalt minne. Om en variabel markeras som flyktig måste den läsas från huvudminnet varje gång samma variabel används.
På samma sätt, varje gång variabeln skrivs, måste värdet lagras i huvudminnet.
23) Hur kan du dela data mellan två trådar i Java?
Vi kan få data mellan trådar genom att använda ett delat objekt, eller samtidigt datastruktur som BlockingQueue. Den implementerar ett producent-konsumentmönster med hjälp av vänta och aviseringsmetoder. Det innebär också att dela objekt mellan två trådar.
24) Hur kan flera trådar kontrolleras samtidigt?
Flera trådar kan styras samtidigt om de skapas i ett ThreadGroup-objekt.
25) Vad är en blockeringsmetod i Java?
I Java är blockeringsmetod en metod som blockerar tills uppgiften är klar. Till exempel acceptera () metoden för ServerSocket-block tills en klient är ansluten. Här avser blockering allt som kontrollen inte kommer att återvända till den som ringer förrän uppgiften är över.
26) Vad är den största skillnaden mellan metoden vänta () och sömn ()?
Vänta() | Sömn() |
Denna metod är definierad i klassen Object | Metoden är definierad i klassen Thread |
Metoden Wait() släpper låset | Denna metod släpper aldrig låset. |
27) Vad är ett oföränderligt objekt? Hur kan det hjälpa att skriva en samtidig ansökan?
Vilket objekt som helst kan betraktas som oemotsagligt om dess tillstånd inte ändras efter att det konstruerats. Immutable Objects används för att skapa enkla, pålitliga och samtidiga applikationer.
För att skapa objekt som är oföränderliga är det viktigt att göra klassen och dess medlem slutgiltiga så att när objekt väl har skapats ändras inte dess tillstånd.
28) Berätta för mig skillnaden mellan att ge efter och att sova?
När en uppgift anropar sin yield()-metod återgår den till redo-tillståndet.
När en uppgift anropar sin sleep()-metod återgår den till vänteläget.
29) Vad är ThreadPool?
ThreadPool är en pool av trådar som återanvänder ett fast antal trådar för att utföra den specifika uppgiften.
30) Vad är användningen av Synchronized keyword?
Synkroniserat nyckelord kan tillämpas antingen på den statiska eller icke-statiska metoden. Om du använder Synkroniserat kan endast en tråd komma åt synkroniserade metoder. Men i situationen där det finns flera trådar som försöker komma åt samma metod. Vid den tiden måste andra trådar vänta på exekveringstråden. Den tillhandahåller också ett lås på föremålet för att förhindra ett tävlingstillstånd.
public void synchronized method1(){} public void synchronized staticmethod1(){} public void myMethod(){ synchronized (this){ //synchronized keyword on block of code } }
31) Vad är ett flyktigt sökord?
Volatile nyckelord är ett kvalificerare som tillämpas på en variabel när den deklareras. Den talar om för kompilatorn att variabelns värde kan ändras när som helst – utan att koden vidtar någon åtgärd.
32) Vilka är de viktigaste skillnaderna mellan notify och notifyAll i Java?
Notify ()-metoden ger inget sätt att välja en viss tråd, det är därför den bara är användbar när en enda While notifyAll() skickar ett meddelande till alla trådar. Det låter dem också tävla om lås. Det säkerställer också att minst en tråd kommer att gå vidare.
33) Vilken JVM-parameter används för att styra stackstorleken på en tråd?
För att styra stackstorleken på tråden i Java används Xss-parametern.
34) Kan du starta en tråd två gånger i Java?
Nej, när en tråd väl har startat kan den inte startas andra gången.
35) Vad är syftet med att använda utbytesmetoden för gängklass?
Avkastningsmetoden är det enklaste sättet att begära att den aktuella tråden avstår från CPU så att den andra tråden. Det är en statisk metod och garanterar bara att den aktuella tråden kommer att avstå från CPU:n men säger inget om vilken annan tråd som också påverkar CPU:n.
36) När kan vi säga att trådar inte är lätta processer i java?
Trådar är inte lätta processer när trådar av samma process körs samtidigt. Även om trådar av olika processer körs samtidigt vid den tiden blir trådar en tung process.
37) Kan det är möjligt att synkronisera konstruktören för en Java-klass?
Som Java Standard kan konstruktörer inte synkroniseras eftersom andra trådar inte kan se objektet innan trådskapandet har avslutat det. Det finns inget behov av Java Objects-konstruktor för att synkroniseras eftersom det skulle låsa objektet som konstrueras.
38) Vad är transient variabel?
En transient variabel är en variabel som inte kan serialiseras under serialisering. Den initieras till sitt standardvärde under serialiseringen.
Dessa intervjufrågor kommer också att hjälpa dig i din viva (orals)
Hii
det hjälper mig verkligen. under intervjuförberedelserna.
Det är verkligen lovvärt att skriva den här artikeln och ge denna information.
Icommnedable till
5) Vad är trådens tillstånd?
Körbar är inte körläge. Den är redo att köras
uppdaterad! Tack för att du påpekade detta
1. Körbara tillstånd ses som ett dubbelskikt på OS-nivå
2. Nästan alla programmeringsspråk ser tråden som körbar eller INTE.
3. En körbar tråd kan antingen vara i (färdig eller igång) tillstånd.
4. Du kan ha två trådar i körbara tillstånd, men bara en tråd kommer att finnas i tillståndet "kör",
medan den andra tråden existerar i ett "pågående" tillstånd.