Inleiding tot multithreading-interviewvragen en -antwoorden in Java
In Java wordt Multithreading gedefinieerd als het proces waarbij twee of meer of meerdere threads tegelijkertijd worden uitgevoerd. Het wordt gebruikt om het proces sneller en afhankelijk van de systeemcapaciteit te maken. Het wordt gebruikt om de kleinste eenheden parallel te verwerken om de dingen snel te bereiken en het proces sneller te maken. Het helpt bij het besparen van geheugenruimte en tijd. Het wordt voornamelijk gebruikt voor animatie, gaming en grote toepassingen.
Als je nu op zoek bent naar een baan die gerelateerd is aan Multithreading in Java, moet je je voorbereiden op de Multithreading-sollicitatievragen voor 2019 in Java. Het is waar dat elk interview anders is volgens de verschillende functieprofielen. Hier hebben we de belangrijke Multithreading-interviewvragen op Java voorbereid met hun antwoorden daarop, die u zullen helpen succes te behalen in uw interview.
In dit artikel over multithreading-interviewvragen in Java in 2019 presenteren we 10 belangrijkste en veelgestelde interviewvragen in multithreading in Java. Deze interviewvragen zijn als volgt verdeeld in twee delen:
Deel 1 - Multithreading-interviewvragen in Java (Basic)
Dit eerste deel behandelt basis Multithreading Interview Vragen en Antwoorden in Java.
Q1. Verklaar de verschillende staten van Thread?
Antwoord:
De status van de thread wordt ook wel Lifecycle of a Thread genoemd. Hieronder staan de verschillende staten van Thread:
- Nieuw: dit betekent dat de thread zich in een nieuwe staat bevindt en dat de instantie van threadklasse moet worden gemaakt voordat de startmethode wordt aangeroepen.
- Runnable: Na het aanroepen van de startmethode bevindt de thread zich in de runnable-status en heeft de planner niet geselecteerd dat deze thread wordt uitgevoerd.
- Actief: wanneer de threadplanner is geselecteerd, bevindt deze zich in de actieve status.
- Geblokkeerd: het is ook bekend als niet-uitvoerbaar. Wanneer de thread niet in aanmerking komt om te worden uitgevoerd, maar de thread nog leeft.
- Beëindigd: dit is de status wanneer deze de run-methode verlaat of in de dode staat.
Q2. Wat is de draad in Java?
Antwoord:
De thread verwijst naar een kleine eenheid die minder tijd kost om het uit te voeren. Het is hoofdzakelijk onafhankelijk van het pad van uitvoering. Het is een van de manieren om te profiteren van meerdere CPU's die beschikbaar zijn in de machine. Met behulp van meerdere threads wordt het CPU-proces sneller. Java wordt vooral gebruikt om multithreading te ondersteunen.
Laten we doorgaan naar de volgende multithreading-interviewvragen in Java.
Q3. Verklaar het verschil tussen thread en proces in JAVA?
Antwoord:
De rode draad is de kleinste uitvoeringstaak binnen het proces. Het proces is een zelfstandige uitvoeringsomgeving met meer dan één thread of meerdere threads. Threads zijn de onderverdeling van het proces. De thread heeft directe toegang tot het gegevenssegment van het proces, terwijl het proces een eigen kopie van het gegevenssegment heeft. Thread deelde vooral het adres dat door het proces wordt gecreëerd en het proces heeft zijn eigen adres. De thread kan eenvoudig worden gemaakt en procescreatie vereist veel dingen om te doen. De thread kan gemakkelijk communiceren met andere threads, terwijl het proces eenvoudig kan communiceren met het onderliggende proces, maar communicatie tussen processen is moeilijk. De thread heeft zijn eigen stack, terwijl het proces de geheugenbronnen zoals heap-geheugen, enz. Deelt. Als een thread is gewijzigd, heeft dit invloed op alle threads, maar in het proces heeft dit geen invloed op andere processen.
Q4. Uitleggen over Java Memory Model?
Antwoord:
Dit zijn de veelgestelde multithreading-interviewvragen op Java die in een interview worden gesteld. Verschillende verantwoordelijkheden moeten normaal gesproken worden gevolgd door een multithreading-tester in de huidige IT-industrie.
Het Java-geheugenmodel heeft een bepaalde set regels die moeten worden gevolgd voor Java-programma's die zich op een bepaalde manier gedragen in alle architectuur, CPU en besturingssystemen met meerdere geheugenfuncties, die een belangrijke rol spelen bij multithreading. Java-geheugenmodel helpt bij het onderscheiden van de wijzigingen die zijn aangebracht in een van de threads en die wijziging moet ook zichtbaar zijn voor andere threads. In dit model is er een programmaregelregel, die zegt dat elke actie in thread plaatsvindt vóór elke actie in de thread die later in programmaregel komt.
Q5. Uitleg over het gebruik van vluchtige variabele in Java Multithreading?
Antwoord:
Vluchtig trefwoord of variabele wordt gebruikt om ervoor te zorgen dat gedeelde of instantievariabelen voortdurend worden bijgewerkt wanneer wijzigingen door meerdere threads worden aangebracht. Het is een speciale modifier die alleen met instantievariabelen kan worden gebruikt. Dit trefwoord kan niet worden gebruikt met methoden. Als het veld in Java als vluchtig wordt verklaard, zorgt het Java-geheugenmodel ervoor dat alle threads dezelfde waarde voor die variabele moeten hebben. De waarde van de vluchtige variabele wordt altijd uit het hoofdgeheugen gelezen. Het vermindert ook het risico op fouten in de geheugenconsistentie. De vluchtige Java-variabele die een objectreferentie is, kan nul zijn. Het vluchtige sleutelwoord moet worden gebruikt als de variabele over meerdere threads wordt gebruikt.
Deel 2 - Multithreading-interviewvragen in Java (geavanceerd)
Laten we nu eens kijken naar de geavanceerde multithreading-interviewvragen en -antwoorden in Java.
Q6. Verklaar de race conditie in threads?
Antwoord:
De raceconditie deed zich voor wanneer er een race is tussen meerdere threads. Deze raceconditie wordt voornamelijk veroorzaakt door enkele programmeerfouten of fouten. De thread die eerst moest worden uitgevoerd, verloor de race en voerde vervolgens de tweede en enige verandering in het gedrag van code uit die niet-deterministische bugs werden genoemd. Het wordt een van de moeilijke bugs om te achterhalen en te reproduceren vanwege de willekeurige aard van threads.
Q7. Uitleggen van het vork-join-framework in Java?
Antwoord:
Het vork-voeg raamwerk wordt geïntroduceerd in JDK7. Het is een krachtig hulpmiddel voor Java-ontwikkelaars om te profiteren van meerdere processors van de wereldservers van vandaag. Het wordt hoofdzakelijk ontworpen voor werk dat in kleinere stukken kan worden verdeeld. Het belangrijkste doel is om de beschikbare verwerkingskracht te gebruiken om de applicatieprestaties te verbeteren. Het gebruikte hoofdzakelijk het algoritme voor werkstelen.
Laten we doorgaan naar de volgende multithreading-interviewvragen in Java.
Q8. Uitleg thread pool en het gebruik ervan in Java?
Antwoord:
De pool met threads staat bekend als een thread pool. De draad wordt meestal een werkdraad genoemd. Het creëren van een thread is kostbaar in veel opzichten, zoals tijd en middelen. Wanneer u de thread maakt op het moment dat u het proces aanvraagt, vertraagt dit over het algemeen de responstijd van de processor en kunnen slechts enkele limieten in een aantal threads worden gemaakt. Vanwege deze twee grote problemen is de threadpool dus gemaakt. In Java stelt de Java API ons in staat om verschillende soorten thread-pools te maken, zoals een enkele thread-pool, die slechts één proces tegelijk duurt. De andere is een pool met vaste threads waarvoor een vast aantal threads nodig is. Dan is er een threadpool in de cache die uitbreidbaar is en vooral geschikt is voor toepassingen voor vele taken.
Q9. Hoe de gegevens kunnen worden gedeeld tussen de thread?
Antwoord:
Dit zijn de meest populaire multithreading-interviewvragen op Java die in een interview worden gesteld. Enkele populaire testgevallen in de huidige IT-industrie.
De gegevens kunnen worden gedeeld tussen threads met behulp van het gedeelde object of gelijktijdige gegevensstructuur zoals Blokkeerwachtrij. Het volgt hoofdzakelijk het patroon van producent en consument met behulp van wacht en meldt methoden waarbij het object tussen de twee threads wordt gedeeld.
Q10. Hoe threads verdeeld in stapel- en heapgeheugen?
Antwoord:
In Java heeft elke thread zijn eigen stack die wordt gebruikt om lokale variabelen, methodeparameters en call-stack op te slaan. Heap-geheugen is gemeenschappelijk geheugen dat door alle threads wordt gedeeld.
Aanbevolen artikelen
Dit is een leidraad geweest voor de lijst met Multithreading-interviewvragen en -antwoorden in Java, zodat de kandidaat deze Multithreading-interviewvragen in Java gemakkelijk kan opnemen. Hier in dit bericht hebben we de beste multithreading-interviewvragen op Java bestudeerd die vaak in interviews worden gesteld. U kunt ook de volgende artikelen bekijken voor meer informatie -
- Multithreading-sollicitatievragen
- Vragen tijdens solliciteren bij Java Servlet
- Vragen tijdens solliciteren bij JSP
- Vragen over sollicitatiegesprekken bij QlikView
- Handleiding voor sollicitatievragen bij Servlet