Vous êtes sur la page 1sur 10

Java et le multitâche

 La JVM permet d'exécuter plusieurs traitements


simultanément
 Ces traitements sont souvent gérés par des threads
 Java gère aussi les processus
 Les threads sont plus utilisés
intégrés au langage
moins gourmands en ressources mémoires
 L'environnement Java est multi-threads :
création de threads
synchronisation des threads

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

Vous aimerez peut-être aussi