Heim Java javaLernprogramm Erlernen Sie die Grundlagen von Java (17): Zusammenfassung zum Multithreading

Erlernen Sie die Grundlagen von Java (17): Zusammenfassung zum Multithreading

Jan 16, 2017 am 10:27 AM

Erlernen Sie die Grundlagen von Java (Siebzehn): Zusammenfassung zum Multithreading

1. Prozess

1. Strg+Umschalt+Esc Task-Manager-Fenster 2. Programme werden in der Betriebssystemumgebung ausgeführt und benötigen CPU- und Speicherressourcen. Vom Start des Programms bis zum Schließen des Programms wird dieser Prozess als Prozess bezeichnet ist im Betriebssystem Einzigartiges Konzept, Prozess = laufendes Programm 4. Ein laufendes Programm entspricht mindestens einem Prozess 5. Einige Programme übernehmen ein Multiprozess-Architekturdesign 7. Prozesse sind unabhängig voneinander und können nicht aufeinander zugreifen oder sich teilen Ressourcen

2. Thread

1. Die Produktionslinie in der Fabrik wird Thread 3 genannt. Der Prozess enthält Threads und Threads sind kleinere und unabhängige Ausführungseinheiten 4. Ein Prozess kann einen Thread (Single-Threaded) oder mehrere Threads (Multi-Threaded) enthalten 5. QQ ist ein Programm (Prozess) und jedes geöffnete Chat-Fenster ist ein Thread 6. Bevor wir das tun Die geschriebenen Programme sind alle Single-Threaded, und die JVM behandelt die Hauptmethode automatisch als Thread (Produktionslinie) für die Ausführung. 7. Threads können nicht unabhängig voneinander ausgeführt werden und können nicht getrennt vom Prozess ausgeführt werden. Mehrere Threads können die Ressourcen des Prozesses gemeinsam nutzen 8. Zwischen Threads ist es unabhängig

3. Multithread-Programmierung

1. Die Programme, die wir zuvor geschrieben haben, waren alle Single-Threaded und die JVM behandelt die Hauptmethode automatisch als Thread (Produktionslinie), um 2 auszuführen. Es gibt zwei Funktionen A/B in einem Programm. Wenn Multi-Thread-Programmierung verwendet wird, kann Funktion A in einem Thread (Produktionslinie) ausgeführt werden Funktion B kann in einem Thread (Produktionslinie) ausgeführt werden. 3. Laden Sie Bilder einzeln hoch. B. Laden Sie mehrere Bilder gleichzeitig hoch. Durch Multithreading werden die Ressourcen von CPU und Speicher weiter genutzt, wodurch die Ausführungseffizienz verbessert wird des Programms 5. Factory Thunder

4. CPU und Multithreading

1. Kann ein Schüler gleichzeitig schreiben und Filme ansehen? Das Gehirn wechselt zwischen Schreiben und Ansehen von Filmen. 2. Filmfilme sind sehr schnell und das Gehirn erzeugt Illusionen. 3. Echte „Gleichzeitigkeit“ gibt es nicht. Die CPU ist extrem schnell, wechselt sich ab und wechselt zufällig zwischen mehreren Threads

5. Java unterstützt Multithreading

1 Es gibt zwei Arten von Threads in Java: User Thread (Benutzer-Thread) und Daemon Thread (Daemon-Thread) bzw Hintergrunddienst-Thread). Die Rolle des Daemon-Threads besteht darin, Dienste für die Ausführung anderer Threads bereitzustellen, beispielsweise GC-Threads. 2. Methode 1: Erben Sie die Thread-Klasse. Methode 2: Implementieren Sie die Runnable-Schnittstelle

6. Methode 1

1. Die Klassen, die wir zuvor definiert haben, sind alle Gewöhnliche KlassenDa die Codes in diesen Klassen nicht gleichzeitig ausgeführt werden können, handelt es sich bei diesen Klassen nicht um Produktionslinienklassen. 2. Java stellt speziell eine Produktionslinienklasse bereit: java.lang.Thread-Klasse, der Code in dieser Klasse kann ausgeführt werden Gleichzeitig 3. Schritte: Lassen Sie uns die benutzerdefinierte Klasse die Thread-Klasse erben, und die von uns definierte Klasse wird zur Produktionslinienklasse. Schreiben Sie die Ausführungsmethode in der benutzerdefinierten Klasse neu und fügen Sie den Code ein, der gleichzeitig ausgeführt werden muss in die run-Methode. Erstellen Sie in der Hauptmethode zuerst die Produktionslinie und starten Sie dann die Produktionslinie start()

7. Thread-Klasse

public long getId(), um die Thread-Nummer (Thread-ID) abzurufen, die beim Erstellen des Threads verwendet wird. Thread-IDs sind eindeutig und bleiben ein Leben lang unverändert. public final void setName(String name), benennen Sie den Thread. Wenn Sie ihn nicht benennen, gibt es ein Standardformat: Thread-0, Thread-1... public final String getName(), get Der Name des Threads ist public void start() , wodurch der Thread mit der Ausführung beginnt und die JVM automatisch die run()-Methode des Threads aufruft. public static void sleep(long millis), lassen Sie den Thread für wie viele Millisekunden schlafen (pausieren). public static Thread currentThread(), erhalten Sie einen Verweis auf das aktuell ausgeführte Thread-Objekt. (Methode 2 wird verwendet)

8. Multithread-Ausführungsprozess

1 Der Code wird in einem Thread ausgeführt, der als Haupt-Thread 2 bezeichnet wird. Darüber hinaus kann der manuell erstellte Thread als untergeordneter Thread 3 bezeichnet werden. Das Programm muss warten, bis die Ausführung aller Threads abgeschlossen ist, bevor es beendet wird

9. Methode 2

Nachteile: Nach dem Erben der Thread-Klasse können keine anderen Klassen geerbt werden. 2. Schritte: a. Wir passen die Klasse an, die die java.lang.Runnable-Schnittstelle implementiert. b Fügen Sie den Code, der gleichzeitig ausgeführt werden muss, in die Ausführungsmethode c ein. Erstellen Sie eine Produktionslinie (Thread) in 3. Methode 2 nicht die Nachteile von Methode 1, ist aber komplizierter als Methode 1

10. Thread-Sicherheitsprobleme,

1. Unter welchen Umständen wird es Thread-Sicherheit geben? Probleme? a. Mehrere Threads sind unabhängig voneinander. b. Mehrere Threads betreiben oder nutzen gemeinsam genutzte Ressourcen. 2. Mehrere Threads betreiben dieselbe gemeinsam genutzte Ressource, aber die Threads sind unabhängig voneinander und haben keinen Kontakt miteinander. Es wird also Situationen geben wobei die Daten nicht synchron aktualisiert werden, was ein Thread-Sicherheitsproblem darstellt. 3. Fall des Bahnfahrkartenverkaufs. Gleichzeitig auszuführender Code: 10 Bahnfahrkarten verkaufen. Gemeinsame Ressourcen: 10 Bahnfahrkarten. Existieren im Allgemeinen als Attribute

11. So lösen Sie Thread-Sicherheitsprobleme

1. Idee: Betreten Sie die Toiletten im Zug nacheinander ... 2. Synchronisationssperre, der Fachbegriff lautet Überwachungsmonitor3 . Java baut automatisch einen Monitor in jedes Objekt ein. 4. Es gibt zwei Möglichkeiten, dies zu implementieren: Synchronisierungscodeblock Synchronisierungsmethode

12. Synchronisierungscodeblock

1. Analysieren Sie zunächst, welcher Code gesperrt werden muss. 2. Die zwischen mehreren Threads verwendete Sperre muss dieselbe Sperre sein

13 Methode

1. Fügen Sie zuerst den Code ein, der gesperrt werden muss, in eine Methode. 2. Verwandeln Sie die Methode in eine Synchronisierungsmethode. public synchronisiert void sale(){ Operation Der Code, der Daten teilt, ist der Code, der muss synchronisiert werden;} 3. Die Sperre der Synchronisierungsmethode ist standardmäßig festgelegt

Die Vor- und Nachteile der Synchronisierungssperre

Vorteile der Synchronisierung: Das Aufkommen der Synchronisierung löst das Sicherheitsproblem des Multithreadings. Nachteile der Synchronisierung: Wenn es viele Threads gibt, ist dies sehr ressourcenintensiv und praktisch nicht möglich, da jeder Thread die Sperre bei der Synchronisierung beurteilt die Effizienz des Programms verringern. (Leistung und Thread-Sicherheit können nicht gleichzeitig erreicht werden)

15. Detaillierte Probleme

1. Können statische Methoden in synchronisierte Methoden geändert werden? Ja, aber die Sperre ist nicht dies. Die Bytecode-Datei der geladenen Klasse ist, dass gemeinsame Ressourcen vorhanden sein müssen und dass mehrere Threads dieselbe Sperre verwenden müssen 🎜>


Das Obige ist die Zusammenfassung von Regaining the Basics of Java (Seventeen): Multithreading. Weitere verwandte Inhalte finden Sie unter PHP chinesische Website (www.php .cn)!


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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

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.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

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

PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

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