Die 10 häufigsten Fragen zu Multithreading-Interviews in Java (Update für 2019)

Inhaltsverzeichnis:

Anonim

Einführung in Fragen und Antworten zu Multithreading-Interviews in Java

In Java wird Multithreading als der Prozess definiert, bei dem zwei oder mehr Threads gleichzeitig ausgeführt werden. Es wird verwendet, um den Prozess je nach Systemkapazität zu beschleunigen. Es wird verwendet, um die kleinsten Einheiten parallel zu verarbeiten, um die Dinge schnell zu erreichen und den Prozess zu beschleunigen. Es hilft, Speicherplatz und Zeit zu sparen. Es wird hauptsächlich für Animationen, Spiele und große Anwendungen verwendet.

Wenn Sie nach einem Job suchen, der mit Multithreading in Java zusammenhängt, müssen Sie sich auf die Multithreading-Interview-Fragen 2019 in Java vorbereiten. Es ist wahr, dass jedes Interview anders ist, je nach den verschiedenen Berufsprofilen. Hier haben wir die wichtigen Multithreading-Interview-Fragen in Java mit ihren Antworten darauf vorbereitet, die Ihnen helfen, Ihr Interview erfolgreich zu gestalten.

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

Teil 1 - Multithreading-Interview-Fragen in Java (Basic)

In diesem ersten Teil werden grundlegende Fragen und Antworten zu Multithreading-Interviews in Java behandelt.

Q1. Erklären Sie die verschiedenen Zustände von Thread?

Antworten:
Die Status des Threads werden auch als Lebenszyklus eines Threads bezeichnet. Im Folgenden sind die verschiedenen Status von Thread aufgeführt:

  • Neu: Dies bedeutet, dass sich der Thread in einem neuen Status befindet und die Instanz der Thread-Klasse erstellt werden muss, bevor die Startmethode aufgerufen wird.
  • Ausführbar: Nach dem Aufrufen der Startmethode befindet sich der Thread im ausführbaren Zustand und der Scheduler hat ihn nicht als ausführbaren Thread ausgewählt.
  • Wird ausgeführt : Wenn der Thread-Scheduler ausgewählt ist, wird er ausgeführt.
  • Gesperrt: Wird auch als nicht lauffähig bezeichnet. Wenn der Thread nicht ausgeführt werden kann, der Thread jedoch noch aktiv ist.
  • Abgebrochen: Dies ist der Zustand, in dem die Ausführungsmethode beendet wird oder der sich im toten Zustand befindet.

Q2. Was ist der Thread in Java?

Antworten:
Der Thread bezieht sich auf eine kleine Einheit, deren Ausführung weniger Zeit in Anspruch nimmt. Es ist weitgehend unabhängig vom Ausführungsweg. Dies ist eine der Möglichkeiten, die Vorteile mehrerer in der Maschine verfügbarer CPUs zu nutzen. Mit Hilfe mehrerer Threads wird der Prozess der CPU-Aufgabe schneller. Java wird hauptsächlich für die Unterstützung von Multithreading verwendet.

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

Q3. Erklären Sie den Unterschied zwischen Thread und Prozess in JAVA?

Antworten:
Der Thread ist die kleinste Ausführungsaufgabe innerhalb des Prozesses. Der Prozess ist eine eigenständige Ausführungsumgebung mit mehr als einem Thread oder mehreren Threads. Themen sind die Unterteilung des Prozesses. Der Thread hat direkten Zugriff auf das Datensegment des Prozesses, während der Prozess eine eigene Kopie des Datensegments hat. Thread teilte hauptsächlich die Adresse, die durch den Prozess erstellt wird, und der Prozess verfügt über eine eigene Adresse. Der Thread kann leicht erstellt werden und die Erstellung von Prozessen erfordert eine Menge Dinge, die zu tun sind. Der Thread kann problemlos mit anderen Threads kommunizieren, während der Prozess problemlos mit dem untergeordneten Prozess kommunizieren kann, die Interprozesskommunikation jedoch schwierig ist. Der Thread verfügt über einen eigenen Stapel, während der Prozess die Speicherressourcen wie Heapspeicher usw. gemeinsam nutzt. Wenn im Thread Änderungen vorgenommen wurden, sind alle Threads betroffen, während andere Prozesse davon jedoch nicht betroffen sind.

Q4. Erklären Sie über Java Memory Model?

Antworten:
Dies ist die häufig gestellte Frage zu Multithreading-Interviews in Java, die in einem Interview gestellt wird. Normalerweise muss ein Multithreading-Tester in der aktuellen IT-Branche mehrere Aufgaben übernehmen.

Das Java-Speichermodell muss eine Reihe von Regeln befolgen, damit sich Java-Programme in allen Architekturen, CPUs und Betriebssystemen mit mehreren Speichern auf bestimmte Weise verhalten, was beim Multithreading eine wichtige Rolle spielt. Das Java-Speichermodell hilft dabei, die in einem der Threads vorgenommenen Änderungen zu unterscheiden, und diese Änderung sollte auch für andere Threads sichtbar sein. In diesem Modell gibt es eine Programmreihenfolgenregel, nach der jede Aktion im Thread vor jeder Aktion im Thread ausgeführt wird, die später in der Programmreihenfolge ausgeführt wird.

Q5. Erläutern Sie die Verwendung der flüchtigen Variablen in Java Multithreading?

Antworten:
Ein flüchtiges Schlüsselwort oder eine flüchtige Variable wird verwendet, um sicherzustellen, dass gemeinsam genutzte Variablen oder Instanzvariablen ständig aktualisiert werden, wenn Änderungen von mehreren Threads vorgenommen werden. Es ist ein spezieller Modifikator, der nur mit Instanzvariablen verwendet werden kann. Dieses Schlüsselwort kann nicht mit Methoden verwendet werden. Wenn das Feld in Java als flüchtig deklariert ist, stellt das Java-Speichermodell sicher, dass alle Threads einen konsistenten Wert für diese Variable haben. Der Wert der flüchtigen Variablen wird immer aus dem Hauptspeicher gelesen. Es verringert auch das Risiko von Speicherkonsistenzfehlern. Flüchtige Java-Variable, die eine Objektreferenz ist, kann null sein. Das Schlüsselwort volatile muss verwendet werden, wenn die Variable in mehreren Threads verwendet wird.

Teil 2 - Multithreading-Interview-Fragen in Java (Fortgeschrittene)

Lassen Sie uns nun einen Blick auf die erweiterten Fragen und Antworten zu Multithreading-Interviews in Java werfen.

Q6. Erklären Sie die Racebedingung in Threads?

Antworten:
Die Racebedingung ist aufgetreten, wenn ein Race zwischen mehreren Threads besteht. Diese Racebedingung wird hauptsächlich durch einige Programmierfehler oder -fehler verursacht. Der Thread, der zuerst ausgeführt werden muss, hat das Rennen verloren und dann das zweite und einige Änderungen im Verhalten von Code ausgeführt, die als nicht deterministische Fehler bezeichnet wurden. Es wird zu einem der schwierig zu findenden und zu reproduzierenden Fehler, da Threads zufällig angeordnet sind.

Q7. Erklären Sie das Fork-Join-Framework in Java?

Antworten:
Das Fork-Join-Framework wird in JDK7 eingeführt. Es ist ein leistungsfähiges Tool für Java-Entwickler, um die Vorteile mehrerer Prozessoren der heutigen Weltserver zu nutzen. Es ist hauptsächlich für Arbeiten gedacht, die in kleinere Teile unterteilt werden können. Das Hauptziel besteht darin, die verfügbare Rechenleistung zu nutzen, um die Anwendungsleistung zu steigern. Es wurde hauptsächlich der Work-Stealing-Algorithmus verwendet.

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

Q8. Erklären Sie den Thread-Pool und seine Verwendung in Java?

Antworten:
Der Thread-Pool wird als Thread-Pool bezeichnet. Der Thread wird im Allgemeinen als Arbeitsthread bezeichnet. Das Erstellen eines Threads ist in vielerlei Hinsicht zeit- und ressourcenintensiv. Wenn Sie den Thread zum Zeitpunkt der Anforderung des Prozesses erstellen, wird im Allgemeinen die Prozessorantwortzeit verlangsamt, und es können nur einige Einschränkungen in einer Reihe von Threads erstellt werden. Aufgrund dieser beiden Hauptprobleme wurde der Thread-Pool erstellt. In Java können wir mit der Java-API verschiedene Arten von Thread-Pools erstellen, z. B. einen einzelnen Thread-Pool, für den jeweils nur ein Prozess erforderlich ist. Der andere ist ein fester Thread-Pool, der eine feste Anzahl von Threads aufnimmt. Dann gibt es einen zwischengespeicherten Thread-Pool, der erweiterbar ist und hauptsächlich für Anwendungen für viele Aufgaben geeignet ist.

Q9. Wie können die Daten zwischen dem Thread geteilt werden?

Antworten:
Dies ist das beliebteste Multithreading-Interview in Java, das in einem Interview gestellt wurde. Einige beliebte Testfälle in der aktuellen IT-Branche.

Die Daten können zwischen Threads mithilfe des gemeinsam genutzten Objekts oder einer gleichzeitigen Datenstruktur wie der Blockierungswarteschlange gemeinsam genutzt werden. Es folgt hauptsächlich dem Producer-Consumer-Muster unter Verwendung von wait und benachrichtigt Methoden, die das Teilen von Objekten zwischen den beiden Threads beinhalten.

Q10. Wie verteilen sich Threads im Stapel- und Heapspeicher?

Antworten:
In Java verfügt jeder Thread über einen eigenen Stapel, in dem lokale Variablen, Methodenparameter und Aufrufstapel gespeichert werden. Heap-Speicher ist ein gemeinsamer Speicher, der von allen Threads gemeinsam genutzt wird.

Empfohlene Artikel

Dies war ein Leitfaden für die Liste der Fragen und Antworten zu Multithreading-Interviews in Java, damit der Kandidat diese Fragen zu Multithreading-Interviews in Java leicht durchgreifen kann. Hier in diesem Beitrag haben wir die wichtigsten Fragen zu Multithreading-Interviews in Java untersucht, die häufig in Interviews gestellt werden. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Multithreading-Interview-Fragen
  2. Fragen in Vorstellungsgesprächen bei Java Servlet
  3. Fragen im Vorstellungsgespräch bei JSP
  4. Fragen im Vorstellungsgespräch bei QlikView
  5. Leitfaden für Servlet-Interview-Fragen