les Threads

431 vues

Publié le

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

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
431
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
17
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

les Threads

  1. 1. THREADS Enseignant: Mme Wafa Kammoun
  2. 2. PLAN I. 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
  3. 3. I. Définition (appelée aussi processus léger ou activité) est un fil d'instructions (un chemin d’exécution) à l'intérieur d'un processus est donc une portion de code capable de s'exécuter en parallèle à d'autres traitements.
  4. 4. I. Définition  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
  5. 5. 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
  6. 6. 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.
  7. 7. III. Cycle de vie d’un Threads Le thread peut avoir quatre états différents, mais deux seulement peuvent être testés. 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. 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.
  8. 8. 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. 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).
  9. 9. 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
  10. 10. Démonstration
  11. 11. Merci de votre attention!

×