Sammlung klassischer Java-Interviewfragen (4)
1. Anwendungsszenarien des Reflexionsmechanismus
(empfohlene verwandte Tutorials: Java-Interviewfragen)
Umgekehrter Code, z. B. Dekompilierung
Ein Framework kombiniert mit Anmerkungen wie Retrofit
Reine Reflexionsmechanismusanwendung Frameworks wie EventBus 2.x
Dynamische Generierung von Klassen-Frameworks wie Gson
2. Was ist Multithreading?
Multithreading bezieht sich auf die Technologie, die die gleichzeitige Ausführung mehrerer Threads von Software oder Hardware realisiert. In einem Programm werden diese unabhängig voneinander ablaufenden Programmfragmente „Threads“ genannt, und das Konzept der Programmierung mit ihnen wird „Multi-Threading“ genannt.
Computer mit Multithreading-Fähigkeiten können aufgrund der Hardwareunterstützung mehr als einen Thread gleichzeitig ausführen und dadurch die Gesamtverarbeitungsleistung verbessern.
Der Hauptthread ist der erste Thread, der im Erstellungsprozess generiert wird. Dies ist der Thread, der der Hauptfunktion entspricht.
(Empfohlenes Lernen: Java-Einführungsprogramm)
3. Erzählen Sie mir etwas über die Vorteile von Multithreading?
1. Vorteile von Multithreading
Die Kosten für die Erstellung eines neuen Threads sind viel geringer als für die Erstellung eines neuen Prozesses
Das Wechseln zwischen Threads erfordert vom Betriebssystem im Vergleich zum Wechseln zwischen Prozessen nur sehr wenig Arbeit
Threads beanspruchen viel weniger Ressourcen als Prozesse
-
Kann die parallele Anzahl von Multiprozessoren voll ausnutzen
Nachdem das Programm auf das Ende des langsamen E/A-Vorgangs gewartet hat, kann es andere Rechenaufgaben ausführen
Computing (CPU)-intensive Anwendungen: Um auf Multiprozessorsystemen ausgeführt zu werden, wird die Berechnung in mehrere Threads unterteilt, um
IO-intensive Anwendungen zu implementieren Um die Leistung zu verbessern, überlappen sich E/A-Vorgänge und Threads können auf verschiedene E/A-Vorgänge warten.
2. Nachteile von Multithreading
Leistungsverlust (ein rechenintensiver Thread wird selten durch externe Ereignisse blockiert und kann nicht mit anderen kommunizieren Threads teilen sich denselben Prozessor. Wenn die Anzahl der rechenintensiven Threads größer ist als die verfügbaren Prozessoren, kann es zu einem großen Leistungsverlust kommen, der auf den zusätzlichen Synchronisierungs- und Planungsaufwand zurückzuführen ist.)
Reduzierte Robustheit (es besteht ein Mangel an Schutz zwischen Threads. In einem Multithread-Programm aufgrund des geringfügigen Unterschieds in der Zeitzuweisung oder der gemeinsamen Nutzung einiger Die möglichen Auswirkungen negativer Auswirkungen auf Variablen das geteilt werden sollte, ist groß)
Fehlende Zugriffskontrolle (da Prozesse die grundlegende Granularität der Zugriffskontrolle darstellen und bestimmte Betriebssysteme in einem Thread aufrufen. Funktionen wirken sich auf den gesamten Prozess aus)
Der Programmierschwierigkeitsgrad nimmt zu (das Schreiben und Debuggen eines Multithread-Programms ist viel schwieriger als ein Single-Thread-Programm.)
4 . Was ist der Unterschied zwischen Threads und Prozessen?
1. Planung
Ein Prozess ist eine Grundeinheit für das Betriebssystem, um Ressourcen zuzuweisen. Threads sind die Grundeinheit der CPU-Planung.
2. Parallelität
Nach der Einführung von Threads können nicht nur Prozesse gleichzeitig ausgeführt werden, sondern auch mehrere Threads in einem Prozess können gleichzeitig ausgeführt werden, sodass sogar alle Prozesse im Prozess ausgeführt werden können gleichzeitig.
In ähnlicher Weise können Threads in verschiedenen Prozessen auch gleichzeitig ausgeführt werden. Dies ermöglicht dem Betriebssystem eine bessere Parallelität und verbessert die Ressourcennutzung und den Systemdurchsatz.
3. Ressourcen besitzen
Ein Prozess kann Ressourcen besitzen und ist die Grundeinheit für den Besitz von Ressourcen durch das System. Der Thread selbst besitzt keine Systemressourcen, sondern nur einige Ressourcen, die einen unabhängigen Betrieb gewährleisten können. Diese Ressource ist für jeden Thread privat.
Zum Beispiel Thread-ID, eine Reihe von Registern, Stapel, Fehlernummer, Signalmaskenwort (es gibt nur ein ausstehendes Signal in einem Prozess, aber jeder Thread kann dieses Signal verarbeiten), Planungspriorität.
4. Unabhängigkeit
Die Unabhängigkeit von Threads im selben Prozess ist viel geringer als in verschiedenen Prozessen.
5. System-Overhead
Der Overhead der Thread-Umschaltung ist geringer als der Overhead der Prozessumschaltung
Für Herkömmlicher Prozess, dh ein Single-Thread-Prozess, unabhängig von der Anzahl der Prozessoren kann der Prozess nur auf demselben Prozessor ausgeführt werden. Bei einem Multi-Thread-Prozess können jedoch mehrere Threads in einem Prozess mehreren Prozessoren zugewiesen werden. so dass seine gleichzeitige Ausführung den Abschluss des Prozesses beschleunigt.
(Empfohlenes Video-Tutorial:
Java-Video-Tutorial5. Anwendungsszenarien von Prozessen und Threads
- Es müssen häufig Prioritätsthreads erstellt und gelöscht werden.
Priorisieren Sie Threads, die viel Rechenaufwand erfordern.
Threads werden für starke Korrelationen und Prozesse für schwache Korrelationen verwendet.
Es kann erweitert werden, um Prozesse für die Verteilung auf mehreren Maschinen und Threads für die Verteilung auf mehreren Kernen zu verwenden.
Das obige ist der detaillierte Inhalt vonSammlung klassischer Java-Interviewfragen (4). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4
