suchen
HeimJavaJavaErste SchritteWas sind die drei Hauptmerkmale von Multithreading?

Was sind die drei Hauptmerkmale von Multithreading?

Apr 27, 2020 pm 04:32 PM
多线程特性

Was sind die drei Hauptmerkmale von Multithreading?

Multithreading hat drei Hauptmerkmale, nämlich:

Atomizität, Sichtbarkeit, Ordnung

1 Was ist ein Atom?

bedeutet, dass ein Vorgang oder mehrere Vorgänge entweder vollständig ausgeführt werden und der Ausführungsprozess nicht durch irgendwelche Faktoren unterbrochen wird, oder dass sie überhaupt nicht ausgeführt werden.

Ein sehr klassisches Beispiel ist das Problem der Bankkontoübertragung:

Zum Beispiel muss die Übertragung von 1.000 Yuan von Konto A auf Konto B zwei Vorgänge umfassen: 1.000 Yuan von Konto A abziehen und dann überweisen 1.000 Yuan auf Konto B. Konto B fügt 1.000 Yuan hinzu. Diese beiden Vorgänge müssen atomar sein, um sicherzustellen, dass keine unerwarteten Probleme auftreten.

Das Gleiche gilt, wenn wir Daten verarbeiten, z. B. i = i+1; dazu gehört das Lesen des Werts von i, das Berechnen von i und das Schreiben von i. Diese Codezeile ist in Java nicht atomar, sodass Multithread-Operationen definitiv Probleme verursachen. Daher müssen wir auch Synchronisierung und Sperre verwenden, um diese Funktion sicherzustellen.

(Empfohlenes Video-Tutorial: Java-Video )

2. Was ist Sichtbarkeit

Wenn mehrere Threads auf dasselbe Wann zugreifen Wenn eine Variable geändert wird und ein Thread den Wert der Variablen ändert, können andere Threads den geänderten Wert sofort sehen.

Wenn sich die beiden Threads auf unterschiedlichen CPUs befinden, dann hat Thread 1 den Wert von i geändert und er wurde nicht im Hauptspeicher aktualisiert, und Thread 2 verwendet i erneut, dann muss der i-Wert immer noch der sein Das gleiche wie zuvor. Thread 1 hat ein Variablenpaar. Die Änderung, die Thread 2 nicht gesehen hat, war ein Sichtbarkeitsproblem.

3. Was ist Ordnung?

Die Reihenfolge der Programmausführung erfolgt in der Reihenfolge des Codes.

Um die Effizienz des Programmbetriebs zu verbessern, kann der Prozessor im Allgemeinen den Eingabecode optimieren. Es kann jedoch nicht garantiert werden, dass die Ausführungsreihenfolge jeder Anweisung im Programm mit der Reihenfolge im Code übereinstimmt. Es stellt jedoch sicher, dass das Programm letztendlich ausgeführt wird. Das Ergebnis stimmt mit dem Ergebnis der sequentiellen Ausführung des Codes überein. Wie folgt:

int a = 10; //语句1
int r = 2; //语句2
a = a + 3; //语句3
r = a*a; //语句4

Aufgrund der Neuordnung kann er auch die Reihenfolge 2-1-3-4, 1-3-2-4 ausführen, aber es ist absolut unmöglich, 2-1-4-3, weil diese Abhängigkeiten kaputt sind.

Natürlich verursacht eine Neuordnung kein Problem für den Single-Thread-Betrieb, aber nicht unbedingt für den Multi-Threading. Daher müssen wir dieses Problem bei der Programmierung mit Multi-Threading berücksichtigen.

Empfohlenes Tutorial: Erste Schritte mit Java

Das obige ist der detaillierte Inhalt vonWas sind die drei Hauptmerkmale von Multithreading?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:csdn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

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ßer Artikel

Nordhold: Fusionssystem, erklärt
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft