Académique Documents
Professionnel Documents
Culture Documents
3
Notion the thread
Processus léger
Contrairement au processus, les threads
partagent le même espace d’adressage
existent au sein du même processus (lourd)
La communication inter-thread occasionne peu de
surcharge
Le passage contextuel (context switching) d’une thread
à une autre est peu coûteux
Lancement rapide
Utilisation simple
4
Création de threads
Deux solutions
Classe Thread
Interface Runnable
5
Création de threads-Solution 1
Créer une sous-classe de la classe Thread
Et redéfinit la méthode run()
La méthode run() contient le code qui sera exécuté
par la thread
6
Création de threads-Solution 2
Créer une classe qui implémenter l’interface Runnable
Et implémenter la méthode run()
Permet de créer une instance de Thread
7
Comment choisir ?
Première solution :
Si on a pas besoin d’hériter d'une autre classe
Deuxième solution :
Si on veut hériter d'une autre classe
8
Lancement et mort de threads
La méthode start() débute une thread en appelant sa
méthode run()
Le thread s’exécute en parallèle avec le code qui l’a
lancé
La fin de la méthode run() détruit la thread.
9
Objectif
Développer une application client /serveur simple
Supporte plusieurs clients simultanément
On doit utiliser des threads coté serveur
Lorsque les requêtes des client arrivent
Une thread séparée est attribuée pour manipuler
chaque requête
11
Fonctionnement
Une fois un client est connecté
Le traitement suivant se répètent jusqu’à ce que le
client ennoie le message "Exit".
Le serveur demande au client d'envoyer un chaine
de caractères
Le client saisit une un chaine de caractères puis
l’envoi au serveur
Le serveur convertit les lettres de la chaine reçue en
majuscules puis la renvoie au client
Le message "Exit" engendre la fermeture de la
connexion
12
Client / serveur multithread en java (Rappel)
13