Inleiding tot Java Multi-threading Interviewvragen en antwoorden

Java groeit tegenwoordig enorm dankzij het onafhankelijke platform. Het kan overal worden uitgevoerd en wordt daarom op grote schaal gebruikt met verschillende opkomende technologieën. Om hierop voorbereid te zijn, is multi-threading een belangrijk onderwerp dat op interviews is gericht. Dus je hebt eindelijk je droombaan gevonden in Java Multi-threading, maar je vraagt ​​je af hoe je het interview kunt kraken en wat de waarschijnlijke Java Multi-threading zou kunnen zijn. Interview vragen. Elk interview is anders en de reikwijdte van een baan is ook anders. Laten we een paar belangrijke Java Multi-threading Interview-vragen doornemen die kunnen worden gesteld in de Java Multi-threading-interviews die u zou willen volgen.

Hieronder vindt u de top Java Multi-threading Interviewvragen en antwoorden

1.Wat is Thread in JAVA en hoe implementeert u het?

Antwoord:
Een thread helpt multitasking en multiverwerking binnen een programma mogelijk te maken. Het maakt effectief gebruik van de CPU en helpt de prestaties van de applicatie te verbeteren. Met Java kan de gebruiker meerdere threads tegelijk gebruiken. Het kan parallel aan andere programma's worden uitgevoerd zonder onderbrekingen. Dit helpt bij het verkorten van een tijd voor het proces. Als een programma bijvoorbeeld 60 seconden nodig heeft om uit te voeren, kunnen we 6 threads gebruiken die ons het resultaat in 10 seconden geven.

Java biedt twee manieren om thread in een programma te implementeren. interface java.lang.Runnable heeft een instantie java.lang.A thread die een taak moet uitvoeren via een instantie. De klasse Thread implementeert Runnable al, dus een gebruiker kan de methode run () direct overschrijven door de klasse Thread uit te breiden of door de interface Runnable te implementeren.

2. Wanneer moet u Runnable gebruiken en wanneer Thread gebruiken in Java?

Antwoord:
Java ondersteunt geen meerdere overervingen van een klasse, maar laat toe om meerdere interfaces tegelijkertijd te implementeren. Daarom is het beter om Runnable te implementeren dan Thread-klasse uit te breiden.

3. Hoe maak je onderscheid tussen een thread en een proces?

Antwoord:
Een thread is een subset van een proces. In één proces kunnen meerdere threads worden uitgevoerd. Threads kunnen elk onderdeel van een proces uitvoeren. Een proces heeft zijn eigen adres waar het wordt opgeslagen, terwijl thread het adres deelt van het proces dat het heeft gecreëerd. Een proces maken is een hectisch proces, terwijl threads eenvoudig kunnen worden gemaakt. Een draad wordt meestal een lichtgewichtproces genoemd. Communicatie tussen processen is moeilijk, terwijl threads eenvoudig kunnen communiceren met behulp van de Java-methoden wachten () en melden (). Processen zijn onafhankelijk en daarom heeft elke wijziging in het proces geen invloed op onderliggende processen. Integendeel, als er wijzigingen in een thread worden aangebracht, zijn er mogelijkheden die andere threads kunnen beïnvloeden.

4. Waarom wordt er gezegd dat draadgedrag onvoorspelbaar is?

Antwoord:
De reden hiervoor is de threadplanner die de uitvoering van threads afhandelt. De planner heeft misschien verschillende prestaties op verschillende platforms Windows, UNIX, LINUX, enz. Tijdens het uitvoeren van dezelfde thread kan verschillende uitvoer op verschillende platforms en soms zelfs op hetzelfde platform. Om dit op te lossen, kan een gebruiker hetzelfde Runnable-object maken, run () -lussen in beide threads maken en beide threads samen starten. In het ideale geval kiest de planner beide threads samen en worden de prestaties niet beïnvloed, maar beide threads gaan anoniem in lussen.

5. Wat is een vluchtige variabele in Java en wat is de betekenis ervan?

Antwoord:
Java vergemakkelijkt de gebruiker om variabelen die in verschillende threads aanwezig zijn te delen. Een vluchtige variabele fungeert als een speciale modificator die alleen kan worden gebruikt voor bijvoorbeeld variabelen. Aangezien deze variabele wordt gedeeld, zouden er consistente wijzigingen mee zijn. De thread moet ervoor zorgen dat deze exclusieve toegang heeft tot deze variabelen en dat een vergrendeling verplicht is voor wederzijdse uitsluiting van gedeelde variabelen. Het zorgt ervoor dat een schrijfactie plaatsvindt voorafgaand aan elke daaropvolgende leesactie. Java-geheugenmodel zorgt voor de consistentie van deze variabele. Vluchtige methoden kunnen er niet zijn, omdat ze alleen kunnen worden gebruikt in de vorm van variabelen.

6. Wat is het nut van gesynchroniseerd trefwoord? Wat is het verschil tussen gesynchroniseerde en vluchtige zoekwoorden?

Antwoord:
Het gesynchroniseerde trefwoord wordt gebruikt wanneer het doel is om slechts één thread tegelijk in een geschikt codegedeelte uit te voeren. Het kan worden gebruikt om vier soorten verschillende blokken weer te geven, zoals hieronder:

1) Instantiemethoden
2) Statische methoden
3) Codeblokken in instantiemethoden
4) Codeblokken in statische methoden

Het kan worden verklaard als:

Openbaar gesynchroniseerd ongeldig voorbeeld () ()

Het verschil tussen vluchtig en gesynchroniseerd trefwoord is dat gesynchroniseerd kan worden gebruikt met variabele en methoden, terwijl vluchtig niet kan worden gebruikt met methoden. Vluchtige variabelen worden niet opgeslagen in het cachegeheugen, gesynchroniseerde variabelen worden opgeslagen in het cachegeheugen. Een vluchtige variabele belandt nooit in een impasse, omdat er geen slot nodig is. In gesynchroniseerde variabelen kan het, als ze niet goed worden uitgevoerd, in een impasse terechtkomen.

7. Waarom zijn methoden zoals wachten (), melden () en melden iedereen () in de objectklasse en niet in de threadklasse?

Antwoord:
Objectklasse heeft monitors waarmee de thread een object kan vergrendelen, terwijl Thread geen monitors heeft. Wanneer een van de bovenstaande methoden wordt aangeroepen, wacht deze op een andere thread om het object vrij te geven en brengt de monitor op de hoogte door kennisgeving () of alle () aan te roepen. Wanneer de methode kennis () wordt aangeroepen, doet dit alle taken die wachten tot het object wordt vrijgegeven. De monitor van de objectklasse controleert op het object of het beschikbaar is of niet. Thread class met deze methoden zou niet helpen als er meerdere threads op een object bestaan ​​en niet andersom.

8. Leg het verschil uit tussen de methoden sleep () en wait ().

Antwoord:
1) sleep () methode wordt aangeroepen op threads en niet op objecten. De methode Wait () wordt op objecten aangeroepen.
2) Wanneer de methode wait () wordt aangeroepen, verplaatst de monitor de thread van de actieve naar de wachtende status. Als een thread in de wacht staat (), kan deze alleen naar runnable worden verplaatst wanneer voor dit object een melding () of een melding () is ingeschakeld. De planner wijzigt hierna de status. In de methode sleep () wordt de status gewijzigd om te wachten en wordt deze pas weer actief nadat de slaaptijd voorbij is.
3) De methode Wait () is een onderdeel van de klasse java.lang.Object, terwijl sleep () een onderdeel is van de klasse java.lang.Thread.
4) Wait () wordt altijd gebruikt met een gesynchroniseerd blok omdat het een object moet vergrendelen terwijl sleep () kan worden gebruikt vanaf een gesynchroniseerd blok.

9. Hoe start je een thread in Java?

Antwoord:
In Java kan multithreading niet leiden tot het starten van een thread. Alleen thread scheduler kan threads beheren en ze zijn niet blootgesteld aan een API voor controle.

10. Verlaat de thread objectvergrendeling wanneer de methoden wait () en sleep () worden aangeroepen?

Antwoord:
Wanneer een thread zich in de methode sleep () bevindt, wordt deze niet vergrendeld en wordt de wachtstand geactiveerd. De draad wacht tot de slaaptijd voorbij is. Wanneer de methode wait () wordt gebruikt, verlaat de thread de objectvergrendeling en gaat naar de wachtstand. Zodra kennisgeving () wordt aangeroepen, gaat het weer naar de actieve status en verkrijgt het de vergrendeling.

Aanbevolen artikel

Dit is een gids voor Lijst van Java Multi-threading Interview Vragen en Antwoorden zodat de kandidaat deze Java Multi-threading Interview Vragen gemakkelijk kan beantwoorden. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Vragen tijdens solliciteren voor Java-ontwikkelaars - How Top 7 vragen
  2. Uitgebreide gids voor Java App Development (Awesome Theory)
  3. Vragen en antwoorden over sollicitatiegesprekken bij Maven | Top en meest gestelde
  4. 10 geavanceerde AngularJS-interviewvragen voor ervaren