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