SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
THREADS 
Enseignant: Mme Wafa Kammoun
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
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.
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
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 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.
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).
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!

Contenu connexe

Tendances (19)

JAVA
JAVAJAVA
JAVA
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 
Cours java
Cours javaCours java
Cours java
 
Exceptions
ExceptionsExceptions
Exceptions
 
JAVA Chapitre7
JAVA Chapitre7JAVA Chapitre7
JAVA Chapitre7
 
JAVA Chapitre6
JAVA Chapitre6JAVA Chapitre6
JAVA Chapitre6
 
JAVA Chapitre8
JAVA Chapitre8JAVA Chapitre8
JAVA Chapitre8
 
retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2
 
Présentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@tPrésentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@t
 
Clonage d'objets
Clonage d'objetsClonage d'objets
Clonage d'objets
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
JAVA Chapitre1
JAVA Chapitre1 JAVA Chapitre1
JAVA Chapitre1
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Introduction a Java
Introduction a JavaIntroduction a Java
Introduction a Java
 
Java - implémentation des concepts objets
Java - implémentation des concepts objetsJava - implémentation des concepts objets
Java - implémentation des concepts objets
 
Initialisation dynamique en c++11 (n2660)
Initialisation dynamique en c++11 (n2660)Initialisation dynamique en c++11 (n2660)
Initialisation dynamique en c++11 (n2660)
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
TP2 RMI
TP2 RMITP2 RMI
TP2 RMI
 

En vedette

Statoil innovate subsea_technology_v5
Statoil innovate subsea_technology_v5Statoil innovate subsea_technology_v5
Statoil innovate subsea_technology_v5Statoil
 
Transocean well control
Transocean  well controlTransocean  well control
Transocean well controlSteffones K
 
Drilling Engineering - Primary Cementing
Drilling Engineering - Primary CementingDrilling Engineering - Primary Cementing
Drilling Engineering - Primary CementingJames Craig
 
Drilling Engineering - Drill Bit
Drilling Engineering - Drill BitDrilling Engineering - Drill Bit
Drilling Engineering - Drill BitJames Craig
 
Drilling operation and components
Drilling operation and componentsDrilling operation and components
Drilling operation and componentsChoong KW
 
GéOlogue Di Benedetto Sabrina
GéOlogue  Di Benedetto SabrinaGéOlogue  Di Benedetto Sabrina
GéOlogue Di Benedetto Sabrinagawronski
 
MÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNING
MÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNINGMÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNING
MÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNINGMajito Lopez
 
MY LAST VACATIONS CARTAGENA
MY LAST VACATIONS CARTAGENAMY LAST VACATIONS CARTAGENA
MY LAST VACATIONS CARTAGENAmarcemerchan
 
Diapo2cuestionario
Diapo2cuestionarioDiapo2cuestionario
Diapo2cuestionarioJnohemi
 
Un livret pour les enfants sur le Nouvel An - A Children's Book about New Year
Un livret pour les enfants sur le Nouvel An - A Children's Book about New YearUn livret pour les enfants sur le Nouvel An - A Children's Book about New Year
Un livret pour les enfants sur le Nouvel An - A Children's Book about New YearFreekidstories
 
Estudio del-trabajo-ii-expo
Estudio del-trabajo-ii-expoEstudio del-trabajo-ii-expo
Estudio del-trabajo-ii-expoestudositema
 

En vedette (20)

Introduction àJava
Introduction àJavaIntroduction àJava
Introduction àJava
 
Kick t1
Kick t1Kick t1
Kick t1
 
Statoil innovate subsea_technology_v5
Statoil innovate subsea_technology_v5Statoil innovate subsea_technology_v5
Statoil innovate subsea_technology_v5
 
Cementing
CementingCementing
Cementing
 
Cementation
CementationCementation
Cementation
 
Transocean well control
Transocean  well controlTransocean  well control
Transocean well control
 
Drilling Engineering - Primary Cementing
Drilling Engineering - Primary CementingDrilling Engineering - Primary Cementing
Drilling Engineering - Primary Cementing
 
Drilling Engineering - Drill Bit
Drilling Engineering - Drill BitDrilling Engineering - Drill Bit
Drilling Engineering - Drill Bit
 
Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)
 
Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!
 
Drilling operation and components
Drilling operation and componentsDrilling operation and components
Drilling operation and components
 
GéOlogue Di Benedetto Sabrina
GéOlogue  Di Benedetto SabrinaGéOlogue  Di Benedetto Sabrina
GéOlogue Di Benedetto Sabrina
 
MÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNING
MÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNINGMÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNING
MÉTODOS PRESENCIALES, E-LEARNING, B-LEARNING, M-LEARNING
 
Ladechia
LadechiaLadechia
Ladechia
 
MY LAST VACATIONS CARTAGENA
MY LAST VACATIONS CARTAGENAMY LAST VACATIONS CARTAGENA
MY LAST VACATIONS CARTAGENA
 
Diapo2cuestionario
Diapo2cuestionarioDiapo2cuestionario
Diapo2cuestionario
 
Un livret pour les enfants sur le Nouvel An - A Children's Book about New Year
Un livret pour les enfants sur le Nouvel An - A Children's Book about New YearUn livret pour les enfants sur le Nouvel An - A Children's Book about New Year
Un livret pour les enfants sur le Nouvel An - A Children's Book about New Year
 
Estudio del-trabajo-ii-expo
Estudio del-trabajo-ii-expoEstudio del-trabajo-ii-expo
Estudio del-trabajo-ii-expo
 
Primera Guerra Mundial
Primera Guerra Mundial Primera Guerra Mundial
Primera Guerra Mundial
 
COMMUNICATION - WEBMARKETING
COMMUNICATION - WEBMARKETINGCOMMUNICATION - WEBMARKETING
COMMUNICATION - WEBMARKETING
 

Similaire à les Threads

03_ProgrammationSystemeLinux_Thread.pdf
03_ProgrammationSystemeLinux_Thread.pdf03_ProgrammationSystemeLinux_Thread.pdf
03_ProgrammationSystemeLinux_Thread.pdfLarbaSAWADOGO2
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfLarbaSAWADOGO2
 
Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: ThreadsAlexandru Radovici
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPfrwebhelp
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_threadSaber LAJILI
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011yassine kchiri
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
Mise en place d’un gestionnaire d’annuaire
Mise en place d’un gestionnaire d’annuaireMise en place d’un gestionnaire d’annuaire
Mise en place d’un gestionnaire d’annuaireJeff Hermann Ela Aba
 

Similaire à les Threads (20)

03_ProgrammationSystemeLinux_Thread.pdf
03_ProgrammationSystemeLinux_Thread.pdf03_ProgrammationSystemeLinux_Thread.pdf
03_ProgrammationSystemeLinux_Thread.pdf
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: Threads
 
synchronization.pdf
synchronization.pdfsynchronization.pdf
synchronization.pdf
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APP
 
java_PAR.pdf
java_PAR.pdfjava_PAR.pdf
java_PAR.pdf
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
Ejb 3
Ejb 3Ejb 3
Ejb 3
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
 
Multi-Threading Et Cocoa
Multi-Threading Et CocoaMulti-Threading Et Cocoa
Multi-Threading Et Cocoa
 
SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
4711538.pptx
4711538.pptx4711538.pptx
4711538.pptx
 
threads.pdf
threads.pdfthreads.pdf
threads.pdf
 
Mise en place d’un gestionnaire d’annuaire
Mise en place d’un gestionnaire d’annuaireMise en place d’un gestionnaire d’annuaire
Mise en place d’un gestionnaire d’annuaire
 
SdE 9 - Threads
SdE 9 - ThreadsSdE 9 - Threads
SdE 9 - Threads
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 

Plus de Olga Ambani

Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)Olga Ambani
 
Visualisation graphique des preuves Electroniques
Visualisation graphique des preuves Electroniques Visualisation graphique des preuves Electroniques
Visualisation graphique des preuves Electroniques Olga Ambani
 
Magazine hadrumet
Magazine hadrumetMagazine hadrumet
Magazine hadrumetOlga Ambani
 
Securisation des services B2B à l''aide d'IPSEC
Securisation des services B2B à l''aide d'IPSECSecurisation des services B2B à l''aide d'IPSEC
Securisation des services B2B à l''aide d'IPSECOlga Ambani
 
Mini projet de reseaux de communication
Mini projet  de reseaux de communicationMini projet  de reseaux de communication
Mini projet de reseaux de communicationOlga Ambani
 
Communication interne
Communication interne Communication interne
Communication interne Olga Ambani
 
Etude d’un système ultra large bande sous matlab
Etude d’un système ultra large bande sous matlabEtude d’un système ultra large bande sous matlab
Etude d’un système ultra large bande sous matlabOlga Ambani
 

Plus de Olga Ambani (10)

Projet IPTable
Projet  IPTableProjet  IPTable
Projet IPTable
 
Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)
 
Visualisation graphique des preuves Electroniques
Visualisation graphique des preuves Electroniques Visualisation graphique des preuves Electroniques
Visualisation graphique des preuves Electroniques
 
Magazine hadrumet
Magazine hadrumetMagazine hadrumet
Magazine hadrumet
 
Securisation des services B2B à l''aide d'IPSEC
Securisation des services B2B à l''aide d'IPSECSecurisation des services B2B à l''aide d'IPSEC
Securisation des services B2B à l''aide d'IPSEC
 
Projet de droit
Projet de droitProjet de droit
Projet de droit
 
Lte projet
Lte projetLte projet
Lte projet
 
Mini projet de reseaux de communication
Mini projet  de reseaux de communicationMini projet  de reseaux de communication
Mini projet de reseaux de communication
 
Communication interne
Communication interne Communication interne
Communication interne
 
Etude d’un système ultra large bande sous matlab
Etude d’un système ultra large bande sous matlabEtude d’un système ultra large bande sous matlab
Etude d’un système ultra large bande sous matlab
 

les Threads

  • 1. THREADS Enseignant: Mme Wafa Kammoun
  • 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. 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. 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. 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. 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. 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. 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. 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
  • 11. Merci de votre attention!