Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 9)

javathread.jpeg

Modèle de thread par message

Un nouveau thread est attribué pour chaque instruction ou requête et ce thread effectue le traitement. Il s'agit du modèle Thread-Per-Message.

Prenons l'exemple suivant. La classe Main demande à la classe Host d'afficher des caractères. La classe Host génère et lance un thread qui traite la demande. Le thread lancé utilise la classe Helper pour effectuer l'affichage réel.

(Voir ce manuel pour le code complet)

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(); 
    } 
}

Personnage

Rôle du client Le rôle Client envoie une demande au rôle Hôte. Le rôle Client ne sait pas comment le rôle Hôte répond à la demande. Dans l'exemple de programme, la classe Main a joué ce rôle.

Rôle hôte Lorsque le rôle Host reçoit une demande du rôle Client, il crée un nouveau thread et le démarre. Le thread nouvellement créé utilise le rôle Helper pour gérer la demande. Dans l'exemple de programme, la classe Host a joué ce rôle.

Rôle d'assistance Le rôle Helper fournit au rôle Host une fonction pour traiter les demandes. Un nouveau thread créé par le rôle Host utilise le rôle Helper. Dans l'exemple de programme, la classe Helper a joué ce rôle.

Conseils pour élargir vos pensées

** L'ordre dans lequel la méthode handle est traitée dans le modèle Thread-Per-Message n'est pas nécessairement l'ordre dans lequel la méthode de requête est appelée. Par conséquent, il est inapproprié d'utiliser ce modèle lorsque l'ordre de traitement est significatif. ** **

** Dans le modèle Thread-Per-Message, la méthode de requête n'attend pas la fin de la méthode handle. Par conséquent, le résultat de l'exécution de handle ne peut pas être obtenu du côté de la demande. Par conséquent, ce modèle est utilisé lorsque le résultat du traitement n'est pas nécessaire. ** Si vous voulez le résultat du traitement, utilisez le modèle Future.


Relation Résumé de «Modèles de conception appris en langage Java (édition multithread)» (Partie 1) Résumé de «Modèles de conception appris en langage Java (édition multithread)» (Partie 2) Résumé de «Modèles de conception appris en langage Java (édition multithread)» (Partie 3) Résumé de «Modèles de conception appris en langage Java (édition multi-thread)» (Partie 4) Résumé de "Modèles de conception appris en langage Java (édition multi-thread)" (Partie 5) Résumé de «Modèles de conception appris en langage Java (édition multi-thread)» (Partie 6) Résumé de «Modèles de conception appris en langage Java (édition multithread)» (Partie 7) Résumé de «Modèles de conception appris en langage Java (édition multithread)» (Partie 8)

Recommended Posts

Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 10)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 7)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 3)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 9)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 6)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 4)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (Partie 5)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 2)
Résumé de «Modèles de conception appris en langage Java (édition multi-thread)» (Partie 1)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 11)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 12)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 8)
[Java] Résumé des modèles de conception
Un examen rapide de Java appris en classe part4
Résumé des bases du langage Java
Un examen rapide de Java appris en classe part3
Un examen rapide de Java appris en classe part2
J'ai lu Hiroshi Yuki "Introduction aux modèles de conception appris en langage Java" (SB Creative)
Modèles de conception Java
Ce que j'ai appris en Java (partie 2) Que sont les variables?
Un examen rapide de Java appris en classe
Résumé de ce que j'ai appris dans Spring Batch
Essayez les modèles de conception en langage C! Modèle de souvenir - mémorisons les souvenirs des données
[Java] Résumé de base de Java non couvert par Progate ~ Partie 1 ~
Ce que j'ai appris en Java (partie 3) Déclaration d'exécution des instructions
Résumé de la mise en œuvre des arguments par défaut en Java
Résumé du support Java 2018
Résumé du modèle de conception Java
Ce que j'ai appris en Java (partie 4) Branchement conditionnel et répétition
[Java] Résumé de base de Java non couvert par Progate ~ Partie 2 ・ Liste ~
Road to Java Engineer Part2 Quel type de langage est Java?
[Java11] Résumé du flux -Avantages du flux-
[Java] Résumé des expressions régulières
[Java] Résumé des opérateurs (opérateur)
Résumé de la classe Java Math
[Java] Résumé de la syntaxe de contrôle
Implémentation Java de tri-tree
Résumé du traitement des erreurs Java
[Java] Résumé des opérations mathématiques
Ce que j'ai appris en Java (partie 1) Flux de développement Java et présentation
Résumé de l'ORM "uroboroSQL" qui peut être utilisé dans le Java d'entreprise
[Pour les débutants] Résumé du constructeur java
Résumé du package [Java Silver Study]
Utilisation de base de Java Facultatif Partie 1
processus thread-safe en java
Résumé de l'algorithme AtCoder 400 points (édition Java)
Liste des membres ajoutés dans Java 9
Faire une analyse de phrase en Java 8 (partie 2)
Liste des types ajoutés dans Java 9
Résumé de la programmation orientée objet utilisant Java
Implémentation d'une fonction similaire en Java
Création d'une analyse de phrase dans Java 8 (partie 1)