les Threads

11
THREADS Présenté par: AMBANI Olga 5 e GTR Enseignant: Mme Wafa Kammoun

description

ce project permet de comprendre le fonctionnement des petits processus ou Threads et leur importance

Transcript of les Threads

Page 1: les  Threads

THREADS THREADS

Présenté par:AMBANI Olga

5e GTREnseignant: Mme Wafa Kammoun

Page 2: les  Threads

PLANI. Définition

II. Threads et processus: Pourquoi les Threads?

III. Cycle de vie d’un thread

IV.  La classe thread / L'interface Runnable

VI. Démonstration

Page 3: les  Threads

I. Définition

UN THREAD (appelée aussi processus léger ou activité) est un fil d'instructions (un chemin d’exécution) à l'intérieur d'un processus

UN THREAD est donc une portion de code capable de s'exécuter en parallèle à d'autres traitements.

Qu’est ce qu’un thread?

Page 4: les  Threads

I. DéfinitionA quoi servent – ils ?

faire des traitements en tâche de fond, c'est le cas de la coloration syntaxique des éditeurs ; exécuter plusieurs instances d'un même code pour accélérer le traitement, pour de longs traitements n'utilisant pas les mêmes ressources ; Les threads ont peu d’information propre Très faciles à créer/détruire En général, 100 fois plus rapide à créer qu’un

processus Permettent de recouvrir le calcul et les I/Os

Page 5: les  Threads

II. Threads et Processus: Pourquoi les Threads?

Inconvénients du processus classique: Changement de contexte long (notamment

pour les applications du type "temps réel" ou "multi média"),

Pas de partage de mémoire (communications lentes)

Manque d’outils de synchronisation Interface rudimentaire (fork, exec, exit, wait)Contrairement aux processus: les threads d’un même processus

partagent le même espace d’adressage,

le même environnement (par exemple les mêmes variables d’environnement, des mêmes données, etc.).

2 threads d’un même processus communiquent beaucoup plus facilement que 2 processus.

Processus

Page 6: les  Threads

II. Threads et Processus: Pourquoi les Threads?

Par contre les threads ont leur propre ressources: un identificateur (le thread identifier, ou tid, équivalent

du pid) une priorité une configuration de registres Dispose de sa propre pile pour implanter les variables

locales un masque de signaux d'éventuelles données privées Les programmes qui utilisent plusieurs threads sont

dits multithreadés.

Page 7: les  Threads

III. Cycle de vie d’un ThreadsLe thread peut avoir quatre états différents, mais deux seulement peuvent être testés.

1. ÉTAT NOUVEAU

C'est l'état initial après l'instanciation du thread. À ce stade, le thread est opérationnel, mais celui-ci n'est pas encore actif.

2. ÉTAT EXÉCUTABLE

Un thread est dans un état exécutable à partir du moment où il a été lancé par la méthode start() et le reste tant qu'il n'est pas sorti de la méthode run().Dès que le système le pourra, il donnera du temps d'exécution à votre thread.

Page 8: les  Threads

 3. ÉTAT EN ATTENTE

Un thread en attente est un thread qui n'exécute aucun traitement et ne consomme aucune ressource CPU. Il existe plusieurs manières de mettre un thread en attente. Par exemple : appeler la méthode thread.sleep (temps en millisecondes) ;appeler la méthode wait() ; accéder à une ressource bloquante (flux, accès en base de données, etc.) ;accéder à une instance sur laquelle un verrou a été posé ;appeler la méthode suspend() du thread.Un thread en attente reste considéré comme exécutable.

1. ÉTAT MORT

Un thread dans un état mort est un thread qui est sorti de sa méthode run() soit de manière naturelle, soit de manière subite (Exception non interceptée).

Page 9: les  Threads

IV. L'interface Runnable La classe thread

L'interface Runnable du package java.lang. nous met à disposition une unique méthode, la méthode run() dont la signature est la suivante :

Public void run();

Notre traitement doit se trouver dans cette méthode. Il ne peut pas prendre de paramètre et ne peut pas retourner de valeur.

La classe thread du package java.lang est celle qui doit impérativement être dérivée pour qu'une classe puisse être considérée comme un thread et donc, exécutable en parallèle.Cette classe concrète implémente l'interface Runnable

Page 10: les  Threads

Démonstration

Page 11: les  Threads

Merci de votre attention!