Einführung Fragen und Antworten zum Java-Interview zum Thema Multithreading

Bevor wir zu den Java-Interview-Fragen zu Multithreading übergehen, wollen wir uns mit einigen Fakten zum Thema Multithreading befassen.

# 1 - Also sollten wir zuerst wissen, was der Faden ist?

Es ist die kleinste Verarbeitungseinheit einer bestimmten Arbeit, die als Thread bezeichnet wird. Es ist ein Leichtgewicht in der Natur, so einfach zu bedienen. Jetzt fällt uns ein, warum wir es brauchen sollten: Multithreading wird verwendet, um Multitasking zu erreichen. Multitasking könnte auch auf andere Weise erreicht werden und wird als Multiprozessing bezeichnet.

Multithreading ist jedoch beliebter und effizienter als Multiprocessing, da Threads Eigenschaften haben, bei denen ein gemeinsam genutzter Speicherbereich verwendet wird, während bei Multiprozessen viel Speicher und andere Ressourcen verbraucht werden, die nicht effizient sind.

Das gleichzeitige Ausführen mehrerer Threads für bestimmte Aufgaben wird als Multithreading bezeichnet.

Einige Vorteile der Verwendung von Multithreading:

  • Threads arbeiten unabhängig voneinander, sodass sie unabhängig von anderen in den Systemen ausgeführten Vorgängen sind und somit mehrere Vorgänge gleichzeitig ausgeführt werden können.
  • Durch die Verwendung von Multithreading wird weniger Zeit benötigt, da viele Vorgänge gleichzeitig ausgeführt werden können.
  • Wie bereits erläutert, sind Threads unabhängig, sodass eine Ausnahme in einem einzelnen Thread die Operationen anderer Threads nicht beeinträchtigt.
  • Die Kommunikationskosten zwischen zwei Threads sind niedrig.

Wir können Multitasking auf zwei Arten erreichen:

  • Prozessbasiertes Multitasking (Multiprocessing)
  • Thread-basiertes Multitasking (Multithreading)

HINWEIS: Da wir Multithreading diskutieren, konzentrieren wir uns auf Thread-basiertes Multitasking.

Lebenszyklus eines Threads:

  • Neu
  • Lauffähig
  • Laufen
  • Nicht lauffähig (blockiert)
  • Beendet

HINWEIS: Zum besseren Verständnis lesen Sie das folgende Bild sorgfältig durch.

# 2 - Wie werden Threads erstellt?

Dies ist der wichtigste und erste Punkt, an dem wir den Thread erstellen können. Es gibt zwei Möglichkeiten, wie Threads erstellt werden können, die im Folgenden erläutert werden:

  • Durch die Erweiterung der Thread-Klasse
  • Durch die Implementierung der Runnable-Schnittstelle

HINWEIS:

Wenn ein neuer Thread erstellt wurde, werden die folgenden Aufgaben ausgeführt:

  1. In einem neuen Aufrufstapel wird ein Thread erstellt.
  2. Der Thread ändert seinen Status von "Neu" in "Ausführbar".
  3. Wenn der Thread gestartet wird, findet er die run () -Methode und führt sie aus.

BEISPIEL:

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();
)
)

BEISPIEL:
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();
)
)

HINWEIS: Bitte beachten Sie den Unterschied in den beiden obigen Beispielen. Der Hauptunterschied in den beiden obigen Beispielen besteht darin, dass, wenn wir Thread nicht erweitern, sondern versuchen, Thread durch Implementierung der Runnable-Schnittstelle zu erstellen und die start () -Methode zum Starten des Threads zu klassifizieren, der Tread nicht in einem neuen Aufrufstapel erstellt wird da es nicht als Thread identifiziert wird.

Um es als Thread zu identifizieren, müssen wir die Instanz der Klasse, in der wir das Runnable Interface als Argument implementiert haben, an den Konstruktor der Thread-Klasse übergeben und dann die start () -Methode aufrufen.

Zeitplanung im Thread:

Wie alle wissen, bedeutet dieser Zeitplan, eine Aufgabe zu einem bestimmten Zeitpunkt zu planen.

Thread-Planung ist ein ähnlicher Mechanismus zum Planen eines bestimmten Threads, der einige Protokolle verwaltet. Es gibt zwei verschiedene Möglichkeiten, wie die Thread-Planung in Java funktioniert.

  • Präventive Planung
  • Time Slicing.

Vorausschauende Planung:

JMV entscheidet über die Task mit der höchsten Priorität und startet die Ausführung, bis sie in den Wartezustand oder in den Status "Dead" wechselt oder eine Task mit höherer Priorität erstellt wird.

Time Slicing:

JVM startet die Ausführung eines bestimmten Threads für einen bestimmten Zeitraum und verschiebt dann denselben Thread in den Pool und wählt einen anderen Thread basierend auf der Priorität und anderen Faktoren für die Ausführung aus. Dieser Vorgang wird fortgesetzt, bis der gesamte Thread seinen Vorgang beendet hat.

Wenn Sie nun nach einem Job suchen, der mit Java Multithreading zusammenhängt, müssen Sie sich auf die Java-Interview-Fragen 2018 zum Thema Multithreading vorbereiten. Es ist wahr, dass jedes Interview anders ist, je nach den verschiedenen Berufsprofilen. Hier haben wir die wichtigen Fragen und Antworten zu Java-Vorstellungsgesprächen zum Thema Multithreading zusammengestellt, die Ihnen helfen, Ihr Vorstellungsgespräch erfolgreich zu gestalten.

In diesem Artikel zu Java-Interviewfragen im Jahr 2018 zum Thema Multithreading werden 10 der wichtigsten und am häufigsten gestellten Java-Interviewfragen zum Thema Multithreading vorgestellt. Diese Interviewfragen gliedern sich in zwei Teile:

Teil 1 - Java Interview Fragen zu Multithreading (Basic)

Dieser erste Teil behandelt die grundlegenden Fragen und Antworten zum Java-Interview zum Thema Multithreading.

Q1. Zwischen Prozess und Thread unterscheiden?

Antworten:
Ein Prozess ist ein Programm oder eine Anwendung, während Thread eine einzelne Aufgabe ist, die innerhalb eines Prozesses ausgeführt wird. Der Faden ist ein Leichtgewicht, während der Prozess ein Schwergewicht ist. Thread benötigt weniger, während Prozess mehr Ressourcen benötigt. Daher wird er als stark gewichtet bezeichnet.

Q2. Benutzer-Thread und Daemon-Thread unterscheiden?

Antworten:
Ein in Java erstellter Thread wird als User-Thread bezeichnet. Ein Daemon-Thread läuft immer im Hintergrund und sein gesamter Lebenszyklus hängt vom Haupt-Thread ab. Ein im Hintergrund ausgeführter Daemon-Thread hindert JVM nicht daran, ihn zu beenden. Untergeordneter Thread, der aus einem Daemon-Thread erstellt wurde, ist auch ein Daemon-Thread.

Fahren wir mit den nächsten Fragen zum Java-Interview zum Thema Multithreading fort.

Q3. Die andere Art, einen Thread in Java zu erstellen?

Antworten:
Threads in Java können auf zwei Arten erstellt werden:

  • Durch die Erweiterung der Thread-Klasse.
  • Durch die Implementierung von Runnable Interface.

Q4. Was ist der Lebenszyklus von Thread?

Antworten:
Dies sind die häufigsten Fragen zu Java-Vorstellungsgesprächen zum Thema Multithreading, die in einem Interview gestellt wurden. Es folgen die Lebenszyklen eines Threads:

  • Neu
  • Lauffähig.
  • Laufen.
  • Verstopft.
  • Beendet.

Q5. Was passiert, wenn wir die run () -Methode einer Thread-Klasse aufrufen?

Antworten:
Das direkte Aufrufen der run () -Methode kompiliert das Programm und führt es erfolgreich aus, aber dasselbe Programm wird nicht als Thread behandelt, da kein neuer Aufrufstapel erstellt wird und das Programm seine Ausführung in demselben Aufrufstapel startet, in dem das Hauptprogramm ausgeführt wird.

Zum Erstellen eines Threads, der mit einem neuen Aufrufstack ausgeführt werden soll, muss die start () -Methode der Thread-Klasse verwendet werden.

Teil 2 - Java Interview Fragen zu Multithreading (Advanced)

Werfen wir jetzt einen Blick auf die erweiterten Fragen und Antworten zu Java-Interviews zum Thema Multithreading.

Q6. Können wir die Ausführung eines Threads zu einem bestimmten Zeitpunkt anhalten?

Antworten:
Ja, dies kann in Java durch Aufrufen des sleep () der Thread-Klasse erreicht werden. Die Methode sleep () verwendet auch ein Argument, das die Zeit in Millisekunden angibt.

Q7. Wie können wir das Scheduling von Threads in Java erreichen?

Antworten:
Ja, Thread Scheduling in Java ist möglich. Threads in Java können auf zwei Arten geplant werden, nämlich Time Slicing und Pre-Emptive Scheduling.

Fahren wir mit den nächsten Fragen zum Java-Interview zum Thema Multithreading fort.

Q8. Kann ein Thread zweimal gestartet werden?

Antworten:
Nein, ein Thread kann nicht zweimal gestartet werden. Wenn wir versuchen, einen Thread zweimal zu starten, wird "java.lang.IllegalThreadStateException" ausgelöst.

Q9. Was ist Shutdown Hook in Java?

Antworten:
Dies ist die beliebteste Frage aus Vorstellungsgesprächen für Java zu Multithreading, die in einem Interview gestellt wurde. Ein Shutdown-Hook ist ein Mechanismus, der zum Bereinigen von Ressourcen verwendet wird, wenn die JVM normal oder abrupt heruntergefahren wird.

Q10. Was ist volatil?

Antworten:
Volatile ist ein Schlüsselwort in Java und kann mit Variablen verwendet werden. Wenn eine Variable als flüchtig deklariert wird, lesen alle Threads den Wert derselben Variablen aus dem Hauptspeicher und nicht aus dem Cache. Dadurch wird ein Fehler beim Lesen verhindert, wenn mehrere Threads dieselbe Variable in ihren Operationen verwenden.

Empfohlene Artikel

Dies war ein Leitfaden für die Liste der Java-Interview-Fragen und Antworten zum Thema Multithreading, damit der Kandidat diese Java-Interview-Fragen zum Thema Multithreading auf einfache Weise durchgreifen kann. Hier in diesem Beitrag haben wir uns mit den wichtigsten Java-Interviewfragen zum Thema Multithreading befasst, die häufig in Interviews gestellt werden. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Fragen im Vorstellungsgespräch zu Data Structure Java
  2. Hoppla, Java-Interview-Fragen
  3. Fragen im Vorstellungsgespräch für Multithreading in Java
  4. Fragen im Vorstellungsgespräch zu Java Testing