SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

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 BootDNG Consulting
 
Java Networking
Java NetworkingJava Networking
Java NetworkingSunil OS
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Applet life cycle
Applet life cycleApplet life cycle
Applet life cyclemyrajendra
 
jpa-hibernate-presentation
jpa-hibernate-presentationjpa-hibernate-presentation
jpa-hibernate-presentationJohn Slick
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...ENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Java Thread Synchronization
Java Thread SynchronizationJava Thread Synchronization
Java Thread SynchronizationBenj Del Mundo
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
 
Object Oriented Programming Concepts using Java
Object Oriented Programming Concepts using JavaObject Oriented Programming Concepts using Java
Object Oriented Programming Concepts using JavaGlenn Guden
 
Java basics and java variables
Java basics and java variablesJava basics and java variables
Java basics and java variablesPushpendra Tyagi
 
Java - implémentation des concepts objets
Java - implémentation des concepts objetsJava - implémentation des concepts objets
Java - implémentation des concepts objetsJean David Olekhnovitch
 

La actualidad más candente (20)

Threads in JAVA
Threads in JAVAThreads in JAVA
Threads in JAVA
 
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
 
Java Networking
Java NetworkingJava Networking
Java Networking
 
Nouveautés de java 8
Nouveautés de java 8Nouveautés de java 8
Nouveautés de java 8
 
SQLite database in android
SQLite database in androidSQLite database in android
SQLite database in android
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
Cours java
Cours javaCours java
Cours java
 
Applet life cycle
Applet life cycleApplet life cycle
Applet life cycle
 
jpa-hibernate-presentation
jpa-hibernate-presentationjpa-hibernate-presentation
jpa-hibernate-presentation
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Java Thread Synchronization
Java Thread SynchronizationJava Thread Synchronization
Java Thread Synchronization
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Object Oriented Programming Concepts using Java
Object Oriented Programming Concepts using JavaObject Oriented Programming Concepts using Java
Object Oriented Programming Concepts using Java
 
Java basics and java variables
Java basics and java variablesJava basics and java variables
Java basics and java variables
 
Java - implémentation des concepts objets
Java - implémentation des concepts objetsJava - implémentation des concepts objets
Java - implémentation des concepts objets
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 

Similar a Multithreading

Java - programmation concurrente
Java - programmation concurrenteJava - programmation concurrente
Java - programmation concurrenteFranck SIMON
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_threadSaber LAJILI
 
Cours java avance avancé thread arraylist
Cours java avance avancé thread arraylistCours java avance avancé thread arraylist
Cours java avance avancé thread arraylistHoussem Hamrouni
 
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 threadWilfreid AGBO
 
Programmation des Threads en java
Programmation des Threads en javaProgrammation des Threads en java
Programmation des Threads en javaEzéquiel Tsagué
 
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...ENSET, Université Hassan II Casablanca
 
Concepts de base O.O (1)
Concepts de base O.O (1)Concepts de base O.O (1)
Concepts de base O.O (1)Ouijden Dhemaid
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil 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âchesNovencia Groupe
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
12-Concurrence-Rendez-vous.pdf
12-Concurrence-Rendez-vous.pdf12-Concurrence-Rendez-vous.pdf
12-Concurrence-Rendez-vous.pdfPatiento Del Mar
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAAymen Bedwivski
 

Similar a Multithreading (20)

Threads
ThreadsThreads
Threads
 
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
 
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...
 
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
 
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
 
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
 

Más de Ghazouani Mahdi

Más 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.