SlideShare une entreprise Scribd logo
1  sur  15
Ministère de l’Enseignement Supérieur de la Recherche Scientifique et de la technologie *** * *** Université de la Manouba *** * *** Ecole Nationale des Sciences de l’Informatique Aspects avancés de JAVA Multithreading Présenté par : Ghazouani Mahdi
Classe Thread Création d’un Thread Accès simultané Synchronisation Etats d’un Thread SOMMAIRE Définition Avantages / Inconvénients Conseils pratiques
Définition Capacité d'un programme à lancer simultanément plusieurs processus de traitement.
Avantages     /     Inconénients ,[object Object]
Pouvoir répartir différents traitements d'un même programme en plusieurs unités distinctes pour permettre leur exécution "simultanée".
 Mise en place des mécanismes de synchronisation par le programmeur alors que cette répartition est d'habitude à la charge du système d'exploitation. 
La complexité des programmes utilisant des processus légers.,[object Object]
Implémente l'interface Runnable.
Les constructeurs sont :
Thread()  : crée une référence sur une tâche asynchrone. Celle-ci est encore inactive. La tâche créée doit posséder la méthode run().
Thread(Runnableobject)  : idem mais c'est l'objet Runnable passé en paramètre qui implémente la méthoderun().
Un thread possède une priorité et un nom.,[object Object]
setName() 	        : fixe le nom du thread
getName()	        : retourne le nom du thread
isAlive()	        : indique si le thread est actif ou non

Contenu connexe

Tendances

Tendances (20)

Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
La gestion des exceptions avec Java
La gestion des exceptions avec JavaLa gestion des exceptions avec Java
La gestion des exceptions avec Java
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
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
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
JWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdfJWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdf
 

Similaire à Multithreading

Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
Khalil Lechheb
 
Mécanisme de planification de tâches
Mécanisme de planification de tâchesMécanisme de planification de tâches
Mécanisme de planification de tâches
Novencia Groupe
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
Amel Morchdi
 

Similaire à Multithreading (20)

Threads
ThreadsThreads
Threads
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
synchronization.pdf
synchronization.pdfsynchronization.pdf
synchronization.pdf
 
Java - programmation concurrente
Java - programmation concurrenteJava - programmation concurrente
Java - programmation concurrente
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
Cours java avance avancé thread arraylist
Cours java avance avancé thread arraylistCours java avance avancé thread arraylist
Cours java avance avancé thread arraylist
 
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java threadWilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
 
les Threads
les  Threadsles  Threads
les Threads
 
Programmation des Threads en java
Programmation des Threads en javaProgrammation des Threads en java
Programmation des Threads en java
 
Les Threads.ppt
Les Threads.pptLes Threads.ppt
Les Threads.ppt
 
java_PAR.pdf
java_PAR.pdfjava_PAR.pdf
java_PAR.pdf
 
Concepts de base O.O (1)
Concepts de base O.O (1)Concepts de base O.O (1)
Concepts de base O.O (1)
 
threads.pdf
threads.pdfthreads.pdf
threads.pdf
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Mécanisme de planification de tâches
Mécanisme de planification de tâchesMécanisme de planification de tâches
Mécanisme de planification de tâches
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
12-Concurrence-Rendez-vous.pdf
12-Concurrence-Rendez-vous.pdf12-Concurrence-Rendez-vous.pdf
12-Concurrence-Rendez-vous.pdf
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
 

Plus de Ghazouani Mahdi (8)

RIA
RIARIA
RIA
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Memo java
Memo javaMemo java
Memo java
 
Mécanismes de sécurité
Mécanismes de sécuritéMécanismes de sécurité
Mécanismes de sécurité
 
J2EE vs .NET
J2EE vs .NETJ2EE vs .NET
J2EE vs .NET
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 
Hibernate
HibernateHibernate
Hibernate
 
Moteurs&méta-moteurs de recherche
Moteurs&méta-moteurs de rechercheMoteurs&méta-moteurs de recherche
Moteurs&méta-moteurs de recherche
 

Multithreading

  • 1. Ministère de l’Enseignement Supérieur de la Recherche Scientifique et de la technologie *** * *** Université de la Manouba *** * *** Ecole Nationale des Sciences de l’Informatique Aspects avancés de JAVA Multithreading Présenté par : Ghazouani Mahdi
  • 2. Classe Thread Création d’un Thread Accès simultané Synchronisation Etats d’un Thread SOMMAIRE Définition Avantages / Inconvénients Conseils pratiques
  • 3. Définition Capacité d'un programme à lancer simultanément plusieurs processus de traitement.
  • 4.
  • 5. Pouvoir répartir différents traitements d'un même programme en plusieurs unités distinctes pour permettre leur exécution "simultanée".
  • 6.  Mise en place des mécanismes de synchronisation par le programmeur alors que cette répartition est d'habitude à la charge du système d'exploitation. 
  • 7.
  • 10. Thread() : crée une référence sur une tâche asynchrone. Celle-ci est encore inactive. La tâche créée doit posséder la méthode run().
  • 11. Thread(Runnableobject) : idem mais c'est l'objet Runnable passé en paramètre qui implémente la méthoderun().
  • 12.
  • 13. setName() : fixe le nom du thread
  • 14. getName() : retourne le nom du thread
  • 15. isAlive() : indique si le thread est actif ou non
  • 16. start() : lance l'exécution d'un thread
  • 17. run() : méthode exécutée automatiquement après que la méthode start() précédente ait été exécutée
  • 18. sleep(n) : arrête l'exécution d'un thread pendant n ms
  • 19.
  • 20. Deux façons de définir une telle classe
  • 21. la classe hérite de la classe Thread
  • 22.
  • 23. Création d’un Thread (3/3) Création avec l'interface Runnable package com.personal.threadTest; public class MonThread2 implementsRunnable { public voidrun() { int i = 0; for (i = 0; i > 10; i++) { System.out.println(" " + i); }}} public class MonThread3 { public static void main(String[ ] args) { Thread t = new Thread(new MonThread2()); t.start(); }}
  • 24.
  • 25. déclarer la méthode synchronized()
  • 26. Lorsqu'un thread t1 exécute cette méthode sur un objet, un autre thread t2 ne peut pas l'exécuter pour le même objet. En revanche t2 peut exécuter cette méthode pour une autre instance de la même classe. Public synchronizedvoidmaMethode () {...}
  • 27.
  • 28. Cas de méthodes synchronisées trop longue => baisse d'efficacité lors de l'exécution
  • 29. Possibilité de placer un bloc de code à synchroniser
  • 30. L'objetdont le moniteurest à utiliserdoitêtre passé en paramètre de l'instruction synchronized .Public voidmaMethode () { ... synchronized (objet) { objet.methode();} ... }
  • 31.
  • 32. Lorsqu'une méthode synchronisée d'un objet est appelée, le verrou est mis, aucune autre méthode synchronisée de cet objet ne peut être exécutée.
  • 33.
  • 34. Exécutable : il a été initialisé (il est exécuté si l'ordonnanceur le décide)‏
  • 35. Mort : fin normal d'un thread (sortie de la méthode run())‏
  • 36.
  • 37. Stop() : cette méthode libère les verrous
  • 38. Remplacer par un test dans la boucle du run()‏
  • 39. Suspend (et donc resume) : car ils sont source de nombreux deadlock
  • 40. Ne pas créer trop de thread
  • 41.