Introductie Java Interview Vragen en antwoorden over multithreading

Voordat we verder gaan met het Java-interview, vragen we over Multithreading eerst iets over enkele feiten over multithreading.

# 1 - Dus we moeten eerst weten wat de rode draad is?

Het is de kleinste verwerkingseenheid die een bepaald werk een thread wordt genoemd. Het is een lichtgewicht van aard en dus gemakkelijk te gebruiken. Nu bedenken we dat waarom we het nodig zouden hebben, multithreading wordt gebruikt om multitasking te bereiken. Multitasking kan ook op een andere manier worden bereikt en het staat bekend als Multiprocessing.

Multithreading is echter populairder en het is efficiënt om te gebruiken via multiprocessing omdat threads eigenschappen hebben die het een gedeeld geheugengebied gebruikt, terwijl het in het geval van een multi-proces veel geheugen en andere bronnen verbruikt die niet efficiënt zijn.

Dus het proces van het gelijktijdig uitvoeren van meerdere threads om wat werk te doen, wordt multithreading genoemd.

Enkele voordelen van multithreading:

  • Threads werken onafhankelijk, dus het is onafhankelijk van andere bewerkingen in de systemen en dus is het mogelijk om meerdere bewerkingen tegelijkertijd uit te voeren.
  • Het tijdverbruik is minder bij het gebruik van multithreading, omdat veel bewerkingen tegelijkertijd kunnen worden uitgevoerd.
  • Threads zijn onafhankelijk zoals reeds besproken, dus een uitzondering in een enkele thread zal de werking van andere threads niet verstoren.
  • De communicatiekosten tussen twee threads zijn laag.

We kunnen multitasking op de volgende twee manieren bereiken:

  • Procesgebaseerde multitasking (multiprocessing)
  • Thread-gebaseerde Multitasking (Multithreading)

OPMERKING: Terwijl we multithreading bespreken, zullen we ons concentreren op op draad gebaseerde multitasking.

Levenscyclus van een draad:

  • Nieuw
  • uitvoerbare
  • Rennen
  • Niet-uitvoerbaar (geblokkeerd)
  • beëindigd

OPMERKING: doorloop de onderstaande afbeelding voor uw referentie en een beter begrip.

# 2 - Hoe threads worden gemaakt?

Nu is dit het belangrijkste en het eerste punt waarmee we de draad kunnen maken. Er zijn twee manieren waarop threads kunnen worden gemaakt die hieronder worden besproken:

  • Door Thread-klasse uit te breiden
  • Door de Runnable-interface te implementeren

NOTITIE:

Wanneer een nieuwe thread is gemaakt, worden de volgende taken uitgevoerd:

  1. In een nieuwe call-stack wordt een thread gemaakt.
  2. De thread verandert de status van Nieuw naar Runnable.
  3. Wanneer de thread wordt gestart, wordt de methode run () gevonden en wordt deze uitgevoerd.

VOORBEELD:

By extending Thread class
class MyThread extends Thread
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread t1=new MyThread ();
t1.start();
)
)

VOORBEELD:
By implementing Runnable interface
class MyThread implements Runnable
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread m1=new MyThread ();
Thread t1 =new Thread(m1);
t1.start();
)
)

OPMERKING: Let op het verschil in de bovenstaande twee voorbeelden. Het belangrijkste verschil in de bovenstaande twee voorbeelden is dat als we Thread niet uitbreiden, we eerder Thread proberen te maken door de Runnable-interface te implementeren en de methode start () classificeren om de Thread te starten, het Tread niet in een nieuwe call-stack wordt gemaakt omdat het niet als een draad wordt geïdentificeerd.

Dus om het te identificeren als Thread moeten we de instantie van de klasse waar we de Runnable Interface hebben geïmplementeerd als argument doorgeven aan de constructor van de Thread-klasse en dan moeten we de start () -methode aanroepen.

Planning in discussie:

Zoals ze allemaal weten, betekent dit schema dat je een taak op een bepaald tijdstip moet plannen.

Thread Scheduling is een soortgelijk mechanisme voor het plannen van een bepaalde thread die sommige protocollen onderhoudt. Er zijn twee verschillende manieren waarop Thread-planning werkt in Java.

  • Preventieve planning
  • Tijdsegmentering.

Pre-emptieve planning:

JMV bepaalt de taak met de hoogste prioriteit en begint met uitvoering totdat deze de wachtende of dode status ingaat of een taak met een hogere prioriteit ontstaat.

Tijdsegmentering:

JVM begint met het uitvoeren van een bepaalde thread voor een specifieke periode en verplaatst vervolgens dezelfde thread naar de pool en kiest een andere thread op basis van prioriteit en andere factoren voor uitvoeringen. Dit proces gaat door totdat alle threads het proces hebben beëindigd.

Als je nu op zoek bent naar een baan die gerelateerd is aan Java Multithreading, moet je je voorbereiden op de Java-interviewvragen over multithreading 2018. Het is waar dat elk interview anders is volgens de verschillende functieprofielen. Hier hebben we de belangrijke Java-interviewvragen en -antwoorden op Multithreading opgesteld die u zullen helpen succes te behalen in uw interview.

In dit artikel in Java-interviewvragen over multithreading 2018 presenteren we 10 belangrijkste en meest gestelde Java-interviewvragen over multithreading. Deze interviewvragen zijn als volgt verdeeld in twee delen:

Deel 1 - Java-interviewvragen over multithreading (basis)

Dit eerste deel behandelt de basisvragen voor Java-interviews en antwoorden op multithreading.

Q1. Onderscheid maken tussen proces en draad?

Antwoord:
Een proces is een programma of applicatie terwijl Thread een enkele taak is die binnen een proces moet worden uitgevoerd. De draad is licht van gewicht terwijl het proces zwaar is. Draad vereist minder, terwijl Proces meer middelen vereist en daarom wordt het als zwaar gewogen in de natuur genoemd.

Q2. Onderscheid maken tussen gebruiker Thread en daemon Thread?

Antwoord:
Een thread gemaakt in Java wordt User Thread genoemd. Een Daemon-thread loopt altijd op de achtergrond en de volledige levenscyclus hangt af van de hoofdthread. Een daemon-thread die op de achtergrond wordt uitgevoerd, verhindert niet dat JVM deze beëindigt. Onderliggende thread gemaakt op basis van een daemon-thread, wordt ook een daemon-thread.

Laten we doorgaan naar de volgende Java-interviewvragen over multithreading.

Q3. De andere manier om een ​​thread in Java te maken?

Antwoord:
Threads in Java kunnen op twee manieren worden gemaakt:

  • Door draadklasse uit te breiden.
  • Door Runnable Interface te implementeren.

Q4. Wat is de levenscyclus van Thread?

Antwoord:
Dit zijn de veelgestelde Java-interviewvragen over multithreading die in een interview worden gesteld. Hieronder volgen de levenscyclus van een draad:

  • Nieuw
  • Runnable.
  • Rennen.
  • Geblokkeerd.
  • Beëindigd.

Q5. Wat gebeurt er als we de methode run () van een klasse Thread aanroepen?

Antwoord:
Door de methode run () rechtstreeks aan te roepen, wordt het programma gecompileerd en uitgevoerd, maar wordt hetzelfde programma niet als Thread behandeld omdat er geen nieuwe call-stack wordt gemaakt en het programma wordt uitgevoerd in dezelfde call-stack als waar de main wordt uitgevoerd.

Voor het maken van Thread die moet worden uitgevoerd met een nieuwe call-stack, moet de methode start () van de klasse Thread worden gebruikt.

Deel 2 - Java-interviewvragen over multithreading (geavanceerd)

Laten we nu eens kijken naar de geavanceerde Java-interviewvragen en -antwoorden over multithreading.

Q6. Kunnen we de uitvoering van een thread op een bepaald tijdstip pauzeren?

Antwoord:
Ja, dit kan worden bereikt in Java door de slaapstand () van de klasse Thread aan te roepen. De methode Sleep () neemt ook een argument aan dat de tijd in milliseconden aangeeft.

Q7. Hoe kunnen we de planning van threads in Java bereiken?

Antwoord:
Ja, threadplanning in Java is mogelijk. Threads in Java kunnen op twee manieren worden gepland, namelijk Time Slicing en Pre-emptive Scheduling.

Laten we doorgaan naar de volgende Java-interviewvragen over multithreading.

Q8. Kan een discussie twee keer worden gestart?

Antwoord:
Nee, een thread kan niet twee keer worden gestart. Als we twee keer proberen een thread te starten, wordt er "java.lang.IllegalThreadStateException" weergegeven.

Q9. Wat is shutdown hook in Java?

Antwoord:
Dit zijn de meest populaire Java-interviewvragen over multithreading die in een interview zijn gesteld. Een shutdown hook is een mechanisme dat wordt gebruikt voor het opruimen van resources wanneer de JVM normaal of abrupt wordt uitgeschakeld.

Q10. Wat is vluchtig?

Antwoord:
Vluchtig is een sleutelwoord in Java en kan worden gebruikt met variabelen. Als een variabele als vluchtig wordt verklaard, lezen alle threads de waarde van dezelfde variabele uit het hoofdgeheugen in plaats van uit de cache. Dit voorkomt foutlezen wanneer meerdere threads dezelfde variabele gebruiken in hun bewerkingen.

Aanbevolen artikelen

Dit is een gids voor de lijst met Java-interviewvragen en antwoorden op multithreading zodat de kandidaat deze Java-interviewvragen over multithreading eenvoudig kan beantwoorden. Hier in dit bericht hebben we de beste Java-interviewvragen over multithreading bestudeerd die vaak in interviews worden gesteld. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Data Structure: sollicitatievragen voor Java
  2. Oops: sollicitatievragen voor Java
  3. Multithreading-sollicitatievragen op Java
  4. Vragen tijdens solliciteren bij Java-testen