Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 9)

javathread.jpeg

Thread-Per-Message-Muster

Für jede Anweisung oder Anforderung wird ein neuer Thread zugewiesen, und dieser Thread führt die Verarbeitung durch. Dies ist das Thread-Per-Message-Muster.

Betrachten Sie das folgende Beispiel. Die Hauptklasse fordert die Host-Klasse auf, Zeichen anzuzeigen. Die Host-Klasse erzeugt und startet einen Thread, der die Anforderung verarbeitet. Der gestartete Thread verwendet die Helper-Klasse, um die eigentliche Anzeige durchzuführen.

(Den gesamten Code finden Sie in diesem Handbuch.)

Host.java


public class Host { 
    private final Helper helper = new Helper(); 
    public void request(final int count, final char c) { 
        new Thread() { 
            public void run() { 
                helper.handle(count, c); 
            } 
        }.start(); 
    } 
}

Charakter

Kundenrolle Die Client-Rolle gibt eine Anforderung an die Host-Rolle aus. Die Client-Rolle weiß nicht, wie die Host-Rolle die Anforderung erfüllt. Im Beispielprogramm spielte die Hauptklasse diese Rolle.

Host-Rolle Wenn die Host-Rolle eine Anforderung von der Client-Rolle empfängt, erstellt sie einen neuen Thread und startet ihn. Der neu erstellte Thread verwendet die Hilfsrolle, um die Anforderung zu verarbeiten. Im Beispielprogramm spielte die Host-Klasse diese Rolle.

Helferrolle Die Hilfsrolle bietet der Host-Rolle eine Funktion zum Verarbeiten von Anforderungen. Ein neuer Thread, der von der Host-Rolle erstellt wurde, verwendet die Helper-Rolle. Im Beispielprogramm spielte die Helper-Klasse diese Rolle.

Tipps zur Erweiterung Ihrer Gedanken

** Die Reihenfolge, in der die Handle-Methode im Thread-Per-Message-Muster verarbeitet wird, ist nicht unbedingt die Reihenfolge, in der die Anforderungsmethode aufgerufen wird. Daher ist es unangemessen, dieses Muster zu verwenden, wenn die Reihenfolge der Verarbeitung sinnvoll ist. ** **.

** Im Thread-Per-Message-Muster wartet die Anforderungsmethode nicht auf den Abschluss der Handle-Methode. Daher kann das Ausführungsergebnis des Handles auf der Anforderungsseite nicht erhalten werden. Daher wird dieses Muster verwendet, wenn das Verarbeitungsergebnis nicht benötigt wird. ** Wenn Sie das Ergebnis der Verarbeitung wünschen, verwenden Sie das Future-Muster.


Beziehung Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multithreaded Edition) "(Teil 1) Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multithreaded Edition) "(Teil 2) Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multi-Thread-Edition) "(Teil 3) Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multithread Edition) "(Teil 4) Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multithread Edition) "(Teil 5) Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multithread Edition) "(Teil 6) Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multithreaded Edition) "(Teil 7) Zusammenfassung der in Java-Sprache erlernten Entwurfsmuster (Multithreaded Edition) "(Teil 8)

Recommended Posts

Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 10)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 7)
Zusammenfassung von "In Java gelernte Entwurfsmuster (Multithread Edition)" (Teil 3)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 9)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 6)
Zusammenfassung von "In Java gelernte Entwurfsmuster (Multithread Edition)" (Teil 4)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 5)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 2)
Zusammenfassung von "In Java-Sprache erlernte Entwurfsmuster (Multi-Thread-Edition)" (Teil 1)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 11)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 12)
Zusammenfassung von "In Java gelernten Entwurfsmustern (Multithread Edition)" (Teil 8)
[Java] Zusammenfassung der Entwurfsmuster
Ein kurzer Überblick über Java, das in Klasse 4 gelernt wurde
Zusammenfassung der Grundlagen der Java-Sprache
Ein kurzer Überblick über Java, das in Klasse 3 gelernt wurde
Ein kurzer Überblick über Java, das in Klasse 2 gelernt wurde
Ich las Hiroshi Yuki "Einführung in Designmuster, die in Java gelernt wurden" (SB Creative)
Java-Entwurfsmuster
Was ich in Java gelernt habe (Teil 2) Was sind Variablen?
Ein kurzer Überblick über Java, das im Unterricht gelernt wurde
Zusammenfassung dessen, was ich in Spring Batch gelernt habe
Probieren Sie Designmuster in C-Sprache aus! Erinnerungsmuster - merken wir uns die Speicher der Daten
[Java] Grundlegende Zusammenfassung von Java, die nicht von Progate abgedeckt wird ~ Teil 1 ~
Was ich in Java gelernt habe (Teil 3) Anweisung zur Ausführung von Anweisungen
Zusammenfassung der Implementierung von Standardargumenten in Java
Zusammenfassung der Java-Unterstützung 2018
Zusammenfassung des Java-Entwurfsmusters
Was ich in Java gelernt habe (Teil 4) Bedingte Verzweigung und Wiederholung
[Java] Grundlegende Zusammenfassung von Java, die nicht von Progate abgedeckt wird ~ Teil 2 ・ Liste ~
Road to Java Engineer Part2 Was für eine Sprache ist Java?
[Java11] Stream-Zusammenfassung - Vorteile von Stream -
[Java] Zusammenfassung der regulären Ausdrücke
[Java] Zusammenfassung der Operatoren (Operator)
Zusammenfassung der Java Math Klasse
[Java] Zusammenfassung der Steuerungssyntax
Java-Implementierung von Tri-Tree
Zusammenfassung der Java-Fehlerverarbeitung
[Java] Zusammenfassung der mathematischen Operationen
Was ich in Java gelernt habe (Teil 1) Java-Entwicklungsablauf und Überblick
Zusammenfassung von ORM "uroboroSQL", das in Enterprise Java verwendet werden kann
[Für Anfänger] Zusammenfassung des Java-Konstruktors
Zusammenfassung des Pakets [Java Silver Study]
Grundlegende Verwendung von Java Optionaler Teil 1
Thread-sicherer Prozess in Java-Sprache
AtCoder 400 Punkte Algorithmus Zusammenfassung (Java Edition)
Liste der in Java 9 hinzugefügten Mitglieder
Führen Sie eine Phrasenanalyse in Java 8 durch (Teil 2).
Liste der in Java 9 hinzugefügten Typen
Zusammenfassung der objektorientierten Programmierung mit Java
Implementierung einer ähnlichen Funktion in Java
Erstellen einer Phrasenanalyse in Java 8 (Teil 1)