les threads
Post on 21-Jun-2015
111 Views
Preview:
DESCRIPTION
TRANSCRIPT
THREADS THREADS
Présenté par:AMBANI Olga
5e GTREnseignant: Mme Wafa Kammoun
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
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?
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
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
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.
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.
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).
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
Démonstration
Merci de votre attention!
top related