Heim Java JavaBase Was ist ein Thread in Java?

Was ist ein Thread in Java?

Nov 13, 2019 pm 01:45 PM
java

Thread bezieht sich auf einen Ausführungsprozess in einem Prozess. Ein Prozess kann mehrere Threads ausführen. Beispielsweise kann der Prozess java.exe viele Threads ausführen. Threads treten immer in einen Prozess ein, und mehrere Threads in einem Prozess teilen sich den Speicher des Prozesses.

Was ist ein Thread in Java?

Ein Thread in Java bezieht sich auf eine Instanz der java.lang.Thread-Klasse oder die Ausführung eines Threads. Verwenden Sie die Schnittstelle java.lang.Thread oder java.lang.Runnable, um Code zum Definieren, Instanziieren und Starten neuer Threads zu schreiben. (Empfohlenes Lernen: Java-Kurs )

Jeder Thread in Java verfügt über einen Aufrufstapel. Auch wenn er nicht im Programm erstellt wird, läuft der Thread im Hintergrund. Die main()-Methode wird in einem Thread ausgeführt, der als Hauptthread bezeichnet wird. Sobald ein neuer Thread erstellt wird, wird ein neuer Aufrufstapel generiert. ​

Threads sind in zwei Kategorien unterteilt: Benutzer-Threads und Warte-Threads. Wenn die Ausführung aller Benutzerthreads abgeschlossen ist, wird die JVM automatisch heruntergefahren. Der Wartethread ist jedoch nicht unabhängig von der JVM. Der Wartethread wird im Allgemeinen vom Betriebssystem oder vom Benutzer erstellt.

Die Vorteile, die Threads für uns bringen

Wenn Threads rational eingesetzt werden können, werden Entwicklungs- und Wartungskosten reduziert und die Leistung komplexer Anwendungen kann sogar verbessert werden . Beispielsweise können in GUI-Anwendungen Ereignisse durch die asynchrone Natur von Threads besser verarbeitet werden; in Anwendungsserverprogrammen können mehrere Threads zur Bearbeitung von Client-Anfragen eingerichtet werden.

Threads können sogar die Implementierung virtueller Maschinen vereinfachen. Beispielsweise läuft der Garbage Collector einer Java Virtual Machine (JVM) normalerweise in einem oder mehreren Threads. Daher verbessert die Verwendung von Threads unsere Anwendungen in den folgenden fünf Aspekten:

1. Nutzen Sie die CPU-Ressourcen voll aus

Die meisten Computer auf der Welt verfügen jetzt nur noch über eine CPU . Daher ist es besonders wichtig, die CPU-Ressourcen voll auszunutzen. Beim Ausführen eines Single-Threaded-Programms kann die CPU im Leerlauf sein, während das Programm blockiert ist. Dies führt zu einer großen Verschwendung von Rechenressourcen.

Die Verwendung von Multithreading in einem Programm kann andere Threads ausführen, wenn ein Thread schläft oder blockiert ist und die CPU zufällig im Leerlauf ist. Auf diese Weise ist es für die CPU schwierig, im Leerlauf zu sein. Daher werden die CPU-Ressourcen vollständig ausgenutzt.

2. Vereinfachtes Programmiermodell

Wenn das Programm nur eine Aufgabe ausführt, schreiben Sie einfach ein Single-Threaded-Programm und schreiben Sie den Code gemäß den Schritten zur Ausführung Aufgabe Das ist es. Um aber mehrere Aufgaben zu erledigen, muss man, wenn man immer noch einen einzelnen Thread nutzt, im Programm festlegen, ob und wann jede Aufgabe ausgeführt werden soll. Es zeigt beispielsweise die Stunden, Minuten und Sekunden einer Uhr an.

Wenn Sie einen einzelnen Thread verwenden, müssen Sie die Rotationszeit und den Winkel dieser drei Zeiger nacheinander in der Schleife beurteilen. Wenn drei Threads für die Anzeige dieser drei Zeiger verwendet werden, bedeutet dies, dass für jeden Thread eine separate Aufgabe ausgeführt wird. Dies hilft Entwicklern, das Programm zu verstehen und zu warten.

3. Vereinfachen Sie die Verarbeitung asynchroner Ereignisse

Wenn eine Serveranwendung verschiedene Clientverbindungen empfängt, besteht die einfachste Möglichkeit, damit umzugehen, darin, für jeden Client eine Verbindung zu erstellen . Der Listening-Thread ist dann weiterhin dafür verantwortlich, auf Anfragen des Clients zu lauschen.

Wenn diese Art von Anwendung von einem einzelnen Thread verarbeitet wird und der hörende Thread eine Clientanforderung empfängt, beginnt er, die vom Client gesendeten Daten zu lesen. Nach dem Lesen der Daten befindet sich die Lesemethode in einem Block Zustand, auch Das heißt, dieser Thread kann keine Clientanforderungen mehr abhören.

Um mehrere Client-Anfragen in einem einzelnen Thread zu verarbeiten, müssen Sie nicht blockierende Socket-Verbindungen und asynchrone E/A verwenden. Allerdings ist die Verwendung asynchroner E/A schwieriger zu steuern und fehleranfälliger als die Verwendung synchroner E/A. Daher erleichtert die Verwendung von Multithreading und synchroner E/A die Handhabung asynchroner Ereignisse wie mehrerer Anfragen.

4. Machen Sie die GUI effizienter

Wenn Sie einen einzelnen Thread zur Verarbeitung von GUI-Ereignissen verwenden, müssen Sie eine Schleife verwenden, um nach GUI-Ereignissen zu suchen, die jederzeit auftreten können Zeit in der Schleife Zusätzlich zum internen Scannen von GUI-Ereignissen muss es auch andere Programmcodes ausführen. Wenn der Code zu lang ist, werden die GUI-Ereignisse „eingefroren“, bis der Code ausgeführt wird.

In modernen GUI-Frameworks (wie SWING, AWT und SWT) wird ein separater Event Dispatch Thread (EDT) zum Scannen von GUI-Ereignissen verwendet. Wenn wir eine Schaltfläche drücken, wird die Click-Event-Funktion der Schaltfläche in diesem Event-Dispatch-Thread aufgerufen.

Da die Aufgabe von EDT nur darin besteht, GUI-Ereignisse zu scannen, ist die Reaktion auf Ereignisse auf diese Weise sehr schnell.

5. Kosten sparen

Es gibt im Allgemeinen drei Möglichkeiten, die Ausführungseffizienz des Programms zu verbessern:

(1 ) Erhöhen Sie die Anzahl der CPUs des Computers.

(2) Mehrere Prozesse für ein Programm starten

(3) Multithreading im Programm verwenden.

Das obige ist der detaillierte Inhalt vonWas ist ein Thread in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

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

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

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

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

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.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

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

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

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.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

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

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

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.

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.

See all articles