[Java] So implementieren Sie Multithreading

Einführung

Dieses Mal werde ich erklären, wie Java-Multithreading implementiert wird. Multithreading wird verwendet, wenn Sie mehrere Prozesse gleichzeitig ausführen möchten.

Außerdem verwendet Multithreading eine Klasse namens Thread. Ich möchte eine Methode vorstellen, die häufig in der Thread-Klasse verwendet wird.

Danach wird es in den folgenden Versionen und Umgebungen erklärt.

IDE:eclipse Java-Version: 8 OS:Mac OS

Dann werde ich es sofort erklären.

1. Ordnerstruktur

Die Ordnerstruktur der diesmal erstellten Beispielquelle lautet wie folgt.

スクリーンショット 2018-11-12 20.57.13.png

2. Implementierung der Multithread-Verarbeitung

2-1. Überblick über das Beispielprogramm

Für den Inhalt, der in diesem Beispiel implementiert werden soll, implementieren wir ein Basisprogramm, das die Hauptklasse "Main.java" startet und die Unterklassen "SubThreadA.java" und "SubThreadB.java" parallel startet. ..

2-2. Implementierung der Unterklasse

Implementieren Sie zunächst die Unterklasse, die Sie dieses Mal parallel verarbeiten möchten.

Erweitern Sie zum Erstellen eines Multithread-Programms die Thread-Klasse und schreiben Sie die Ausführungsmethode in diese Klasse. Beschreiben Sie wie folgt.

Der Name der Klassenunterklasse erweitert Thread{
    public void run() {
wird bearbeitet
    }
}

In diesem Beispielprogramm implementieren wir ein Programm, das die folgenden Wörter in jedem Thread an die Konsole ausgibt.

SubThreadA.java → "Thread A wurde gestartet." SubThreadB.java → "Thread B wurde gestartet."

SubThreadA.java


package main;

public class SubThreadA extends Thread {
    public void run() {
        System.out.println("Thread A hat begonnen.");
    }
}

SubThreadB.java


package main;

public class SubThreadB extends Thread {
    public void run() {
        System.out.println("Thread B hat begonnen.");
    }
}

2-3. Implementierung der Hauptklasse

Implementieren Sie als Nächstes den Prozess, um den zuvor in der Hauptklasse erstellten Thread zu starten.

Bei der Implementierungsmethode wird der Prozess der Ausführungsmethode in Multithread gestartet, indem die Startmethode aus dem Objekt der zuvor erstellten Unterklasse aufgerufen wird.

Beschreiben Sie wie folgt.

    public static void main(String[] args) {
Unterklassenname mt=neuer Unterklassenname();
        mt.start();
}

Beschreiben wir nun den Vorgang des Aufrufs von "SubThreadA" und "SubThreadB".

main.java


package main;

public class Main {
    public static void main(String[] args) {
        //Erstellen eines Unterklassenobjekts, das die Thread-Klasse erbt
        SubThreadA mt1 = new SubThreadA();
        SubThreadB mt2 = new SubThreadB();

        //Ausführung der Unterklasse
        mt1.start();
        mt2.start();
    }
}

Klicken Sie nach Abschluss der obigen Beschreibung mit der rechten Maustaste auf Main.java> Java-Anwendung ausführen, um sie auszuführen. Es ist in Ordnung, wenn die folgenden Wörter auf dem Konsolenbildschirm ausgegeben werden.

Thread A hat begonnen.
Thread B hat begonnen.

3. Implementierung der Schlafmethode

Hier wird erklärt, wie die Schlafmethode der Thread-Klasse verwendet wird, um einen Thread für einen bestimmten Zeitraum anzuhalten.

Die Schlafmethode wird verwendet, indem die Zeit, die Sie im Argument anhalten möchten, in Millisekunden angegeben wird. (1000 Millisekunden = 1 Sekunde)

Außerdem kann bei der Sleep-Methode eine InterruptedException-Ausnahme aufgrund eines Interrupts usw. auftreten. Daher muss diese in eine try-catch-Anweisung eingeschlossen und die Ausnahme behandelt werden.

Lassen Sie uns nun "Sub Thread A" mit einer Verzögerung von 3 Sekunden ausführen.

SubThreadA.java


package main;

public class SubThreadA extends Thread {
    public void run() {
        try {
        //3 Sekunden Schlaf
        Thread.sleep(3000);
        System.out.println("Thread A hat begonnen.");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Klicken Sie mit der rechten Maustaste auf Main.java> Java-Anwendung ausführen, um sie auszuführen. Es ist in Ordnung, wenn Thread A 3 Sekunden nach Thread B gestartet wird und die Wörter in der folgenden Reihenfolge auf dem Konsolenbildschirm ausgegeben werden.

Thread B hat begonnen.
Thread A hat begonnen.

4. Implementierung der Join-Methode

Verwenden Sie die Join-Methode, wenn Sie warten möchten, bis ein anderer Thread die Verarbeitung abgeschlossen hat. Codieren Sie das Objekt .join () des Threads, das Sie auf Beendigung überwachen möchten.

Wie bei der Sleep-Methode kann auch aufgrund eines Interrupts usw. eine InterruptedException-Ausnahme auftreten. Daher muss diese in eine try-catch-Anweisung eingeschlossen und die Ausnahme behandelt werden.

Versuchen wir nun, "SubThreadB" zu verarbeiten, nachdem die Verarbeitung von "SubThreadA" abgeschlossen ist.

Main.java


package main;

public class Main {
    public static void main(String[] args) {
        try {
            SubThreadA mt1 = new SubThreadA();
            SubThreadB mt2 = new SubThreadB();

            mt1.start();
            mt1.join();  //Warten Sie, bis SubThreadA beendet ist
            mt2.start();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Klicken Sie mit der rechten Maustaste auf Main.java> Java-Anwendung ausführen, um sie auszuführen. Nach einer Weile wird es in der Reihenfolge der Threads A → B ausgeführt, und es ist in Ordnung, wenn die folgenden Wörter auf dem Konsolenbildschirm ausgegeben werden.

Thread A hat begonnen.
Thread B hat begonnen.

schließlich

Ich habe meinen persönlichen Blog im Jahr 2020 gestartet!

Basierend auf den Kenntnissen und Erfahrungen, die wir als freiberuflicher Ingenieur gesammelt haben, planen wir, Informationen über freiberufliche Ingenieure, technische IT-Informationen, Brancheninformationen, Life-Hacks für Ingenieure und andere Inhalte zu verbreiten.

Die Anzahl der Artikel ist immer noch gering, wird jedoch wöchentlich aktualisiert. Wenn Sie also interessiert sind, wäre ich Ihnen dankbar, wenn Sie einen Blick darauf werfen könnten.

https://yacchi-engineer.com/

Recommended Posts

[Java] So implementieren Sie Multithreading
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
So erzwingen Sie Codierungskonventionen in Java
So senken Sie die Java-Version
[Java] Verwendung von Map
Java - So erstellen Sie JTable
Verwendung von Java Optional
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
Verwendung der Java-Klasse
[Java] So zeigen Sie Wingdings an
Verwendung von Java Map
So legen Sie Java-Konstanten fest
Verwendung von Java-Variablen
So konvertieren Sie Java Base
[Rails] So implementieren Sie Scraping
So initialisieren Sie ein Java-Array
Zusammenfassung der Implementierung von Standardargumenten in Java
Java # 6 studieren (Wie man Blöcke schreibt)
So erstellen Sie einen Java-Container
So zerlegen Sie eine Java-Klassendatei
Verwendung von HttpClient (Post) von Java
[Java] Verwendung der Join-Methode
Wie man JAVA in 7 Tagen lernt
[Verarbeitung × Java] Verwendung von Variablen
So dekompilieren Sie eine Java-Klassendatei
[JavaFX] [Java8] Verwendung von GridPane
So schreiben Sie eine Java-Variablendeklaration
[Java] Versuchen Sie, mithilfe von Generika zu implementieren
Verwendung von Klassenmethoden [Java]
[Rails] So implementieren Sie die Sternebewertung
[Java] Verwendung von List [ArrayList]
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
So übergeben Sie Oracle Java Silver
Versuchen Sie, Yuma in Java zu implementieren
So drehen Sie Iterator Dojo (Java)
Java Eclips So debuggen Sie JavaScript
[Verarbeitung × Java] Verwendung von Arrays
So erstellen Sie ein Java-Array
Verwendung von Java-Lambda-Ausdrücken
[Java] Verwendung der Math-Klasse
So finden Sie Java-Primzahlen
Verwendung des Java-Aufzählungstyps
So verketten Sie Zeichenfolgen mit Java
So überprüfen Sie, ob Java auf einem Mac installiert ist
So erstellen Sie eine Java-Kalenderzusammenfassung
So implementieren Sie Suchfunktionen in Rails
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
[Java] Verwendung der File-Klasse
So kompilieren Sie Java mit VsCode & Ant
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
Versuchen Sie, n-ary Addition in Java zu implementieren
[java] Zusammenfassung des Umgangs mit char