Inleiding tot multithreading Interviewvragen en antwoorden
Multithreading wordt in principe gedefinieerd als het vermogen van een CPU (centrale verwerkingseenheid) om meerdere threads tegelijkertijd te verwerken. Het speelt een belangrijke rol in computerarchitectuur. Er zijn hoofdzakelijk drie soorten multithreading-modellen aanwezig.
- Many to Many Model: in het geval van veel tot veel modelrelaties, vermenigvuldigt het een ander aantal of een reeks threads op een gelijke set kerneldraden.
- Many to One-model: in dit geval relateert het verschillende soorten threads op gebruikersniveau aan één thread op kernelniveau. Met de implementatie van dit proces komt een enige thread in aanmerking voor toegang tot de thread tegelijk en dus kunnen meerdere typen threads niet tegelijkertijd op hetzelfde tijdstip worden uitgevoerd.
- Eén op één model: in het geval van één op één model bestaat er een directe relatie tussen een thread op gebruikersniveau en de thread op kernelniveau. Het biedt eigenlijk meer gelijktijdige implementatie dan het vele-op-één-model. Het biedt ook ondersteuning voor parallelle uitvoering van multi-threads.
Als je nu op zoek bent naar een baan die gerelateerd is aan multithreading, moet je je voorbereiden op de multithreading-interviewvragen van 2019. Het is waar dat elk interview anders is volgens de verschillende functieprofielen, maar om het interview te wissen, moet je een goede en duidelijke kennis hebben van multithreading-processen. Hier hebben we de belangrijke multithreading-interviewvragen en -antwoorden voorbereid die u zullen helpen succes te behalen in uw interview.
Hieronder staan de 10 belangrijke multithreading-interviewvragen en antwoorden uit 2019 die vaak worden gesteld in een interview. Deze vragen zijn als volgt verdeeld in twee delen:
Deel 1 - Multithreading-interviewvragen (basis)
Dit eerste deel behandelt basis Multithreading Interview Vragen en Antwoorden
1. Verklaar de verschillen tussen multithreading en multiprocessing?
Antwoord:
In het geval van multithreading gebruiken de applicatieprocessen en threads de enkele of meerdere kernresources die CPU-caches, vertaling lookaside buffer en de rekeneenheden bevatten. Maar in het geval van multiprocessing, implementeert de applicatie meerdere complete verwerkingseenheden in een of meer cores. Dit is het fundamentele verschil tussen multithreading en multiprocessing, omdat het hoofddoel van multithreading is om meer gebruik van een enkele kern te implementeren met behulp van threadniveau en parallelliteit op instructieniveau.
2. Verklaar verschillende soorten multithreading?
Antwoord:
Dit zijn de veelgestelde multithreading-interviewvragen die vaak worden gesteld in een interview. Er zijn hoofdzakelijk drie soorten multithreading-processen.
- Interleaved multithreading: dit type multithreading wordt hoofdzakelijk verwerkt om de uitvoeringspijplijn onafhankelijk te maken van enige afhankelijkheid door alle gegevensafhankelijkheidskraampjes uit hetzelfde te verwijderen.
- Grofkorrelige multithreading: dit is een type multithreading waarbij één thread kan worden uitgevoerd totdat deze wordt geblokkeerd door een normale gebeurtenis die een lange latentiestop zou verwerken.
- Gelijktijdige multithreading: dit is het nieuwe en geavanceerde type multithreading-proces. In dit geval wordt het multithreading-proces voornamelijk geïmplementeerd naar de superscalar-processors.
Laten we verder gaan met de volgende Multithreading-interviewvragen
3. Verklaar verschillende soorten draadstaten?
Antwoord:
Hieronder vindt u de verschillende soorten threadstatussen.
- Uitvoerbaar: in deze status wordt een thread gebruikt om een uitvoerbare status uit te voeren
- Beëindigd: in deze status moet de thread worden beëindigd en mag deze niet in de huidige uitvoerbare fase blijven.
- Wachten: in deze status wordt de thread gebruikt om te wachten tot een andere thread de opgegeven activiteit uitvoert
- Getimed wachten: in deze status is de thread afhankelijk van tijdrovend en moet wachten tot een andere thread de opgegeven actie uitvoert.
- Geblokkeerd: in deze status wordt de thread gebruikt om in de geblokkeerde status te blijven ten opzichte van de huidige uitvoeringsfase en wacht op een monitorvergrendeling op basis van de huidige toegewezen taken.
4. Leg de methoden wait () en sleep () uit?
Antwoord:
De methode wait () wordt beschreven in de objectklasse en wordt geïmplementeerd om het vergrendelingssysteem vrij te geven tijdens het doel van de codedekking. De sleep () -methode wordt beschreven in de threadklasse en wordt gebruikt om de huidige threaduitvoering gedurende een bepaalde opgegeven tijd te pauzeren.
5. Uitleg over verschillende methoden voor threads?
Antwoord:
Hieronder staan enkele belangrijke methoden voor threads:
- Start (): deze methode wordt gebruikt om het thread-uitvoeringsproces te starten. Dit is de basismethode die moet worden gebruikt om multithreading-processen te starten.
- getName (): het wordt gebruikt om de naam van een thread op te halen
- setpoint (Int nieuwe prioriteit): deze methode wordt gebruikt om de prioriteiten van de thread te wijzigen
- yield (): deze methode wordt gebruikt om de uitvoering van de huidige thread te pauzeren, terwijl de andere thread de normale uitvoeringsfase voortzet.
Deel 2 - Multithreading-interviewvragen (geavanceerd)
Laten we nu eens kijken naar de geavanceerde Multithreading-interviewvragen en -antwoorden.
6. Uitleggen van het thread-synchronisatieproces?
Antwoord:
In het geval van multithreading is er asynchroon gedrag aanwezig in programma's die via het synchronisatieproces op een juiste manier kunnen worden gebalanceerd en gemanipuleerd. Vaak is het gevonden wanneer meerdere threads zowel lees- als schrijfactiviteiten op hetzelfde tijdstip uitvoeren, en dan is er een kans op verwarring. Om deze inconsistentie te voorkomen, is het thread-synchronisatieproces geïmplementeerd. In dit proces, wanneer de thread in het gesynchroniseerde blok komt, wordt deze onbereikbaar voor anderen en kan geen andere thread die methode aanroepen.
7. Uitleggen van de verschillen tussen gebruikersniveau en kerneldraad?
Antwoord:
Hieronder vindt u de verschillen tussen threads op gebruikersniveau en kernelniveau
- Threads op gebruikersniveau zijn sneller dan threads op kernelniveau vanuit het perspectief van creatie en beheer
- Threads op gebruikersniveau zijn generiek, terwijl threads op kernelniveau specifieker zijn voor het betreffende besturingssysteem.
- In het geval van gebruikersniveau kan het multithreading-proces niet worden geïmplementeerd bij multiprocessing, terwijl het kernelniveau zelf multithreaded kan zijn.
Laten we verder gaan met de volgende Multithreading-interviewvragen.
8. Wat bedoel je met lichtgewicht proces?
Antwoord:
Dit zijn de geavanceerde multithreading-interviewvragen die in een interview worden gesteld. De thread staat ook bekend als een lichtgewichtproces. Het is in feite een informatiestroom en de uitvoering ervan doorheen de procescode met betrekking tot zijn eigen geïntegreerde programma's. Het verbetert de prestaties door parallellisme te gebruiken.
9. Wat bedoel je met Livelock?
Antwoord:
Wanneer alle threads in geblokkeerde staat zijn en de uitvoering wordt gestopt vanwege onbeschikbaarheid van resources, wordt die situatie aangeduid als livelock.
10. Wat zijn de voor- en nadelen van multithreading?
Antwoord:
Hieronder vindt u de voor- en nadelen van multithreading
Voors:
- Het kan eenvoudig worden uitgebreid tot multiprocessors.
- Het biedt dreigende actieondersteuning om dienovereenkomstig te slagen of te falen
- De wacht / slaap-methode kan eenvoudiger en netter worden geïmplementeerd
nadelen:
- Zorgvuldige synchronisatie is vereist
- Maak soms ruimtegebonden problemen in het geval van geblokkeerde threads.
Aanbevolen artikel
Dit is een gids voor Lijst met multithreading-interviewvragen en antwoorden, zodat de kandidaat deze multithreading-interviewvragen gemakkelijk kan beantwoorden. Hier in dit bericht hebben we de beste multithreading-interviewvragen bestudeerd die vaak in interviews worden gesteld. U kunt ook de volgende artikelen bekijken voor meer informatie -
- Vragen tijdens solliciteren bij JS
- Vragen tijdens het interview met Java Multi-threading
- Vragen tijdens solliciteren bij VB.NET
- Spring Framework Interview Vragen
- Spring vs Hibernate: Features
- Spring vs Struts: Functions
- Beste gids voor sollicitatievragen bij winterslaap