Vous êtes sur la page 1sur 12

Les Threads

Introduction
• Exemple : si vous devez saisir des données du clavier (un
utilisateur absent), pourquoi bloquer le code qui ne dépend pas
des données?

• Solution : mettre les entrées sorties et le code qui en dépends


dans un Thread. Pendant l’attente des données, l’autre programme
peut s’exécuter.

2
Définition
• Thread : séquence autonome d’exécution d’instructions au sein d’un
programme.

• Donne l’illusion de parallélisme de l’exécution des bouts de


programmes.

• Délivre un parallélisme réel sur une machine multiprocesseur.

3
Définition
• Thread (processus léger) : unité d’exécution rattachée à un processus,
chargée d’exécuter une partie du processus.
• Le terme Thread (fil en anglais) signifie un fil ou chemin d’exécution,
lightweight process (lwp) ou processus léger (par opposition au
processus classique créé par fork, qualifié de processus lourd).

4
Tous les Threads partagent le même espace mémoire au sein de la
machine virtuelle.
•Ils peuvent accéder à tous les objets publics
•Ils peuvent modifier tous les objets publics

5
Threads et processus
Contrairement aux processus, les threads sont légers :

• Ils partagent le même espace d’adressage.


• Ils existent au sein du même processus (lourd) .
• La communication inter-thread occasionne peu de surcharge.
• Le passage contextuel d’un thread à un autre est peu coûteux.

6
Threads et processus

• Le multitâches de processus n’est pas sous le contrôle de


l’environnement d’exécution java. Par contre, il y a un mécanisme
interne de gestion multithreads.

• Le peu de surcharge occasionné par le système de multithreads de


Java est spécialement intéressant pour les applications distribuées.
Par ex., un serveur multitâches (avec une tâche par client à servir)

7
Pourquoi utiliser les Threads?

• Certains bouts de code sont indépendants (pas de relation d’ordre)


donc gain de clarté et de rapidité.

• Des application peuvent nécessiter un parallélisme


• Programme distribué
• Chronométrage d’un programme

8
Création des Threads

Deux méthodes, un point commun :


Ecrire une méthode run() qui fait ce que doit faire le thread.

• Méthode 1 : Dériver une classe de Thread.


• Méthode 2 : Implémenter l’interface Runnable.

9
La classe Thread

10
La classe Thread

11
L’interface Runnable

12

Vous aimerez peut-être aussi