SlideShare une entreprise Scribd logo
Ministère de l’Enseignement Supérieur de laRecherche Scientifique et de la technologie*** * ***Université de la Manouba*** * ***Ecole Nationale des Sciences de l’InformatiqueAspects avancés de JAVAMultithreadingPrésenté par : Ghazouani Mahdi
Classe ThreadCréation d’un ThreadAccès simultanéSynchronisationEtats d’un ThreadSOMMAIREDéfinitionAvantages / InconvénientsConseils pratiques
DéfinitionCapacité d'un programme à lancer simultanément plusieurs processus de traitement.
Avantages     /     InconénientsConsommation de  moins de ressources par rapport à plusieurs processus s'exécutant en même temps.
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.Classe Thread (1/2)Package : java.lang
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.Classe Thread (2/2)currentThread(): retourne le thread en cours d'exécution
setName() 	        : fixe le nom du thread
getName()	        : retourne le nom du thread
isAlive()	        : indique si le thread est actif ou non

Contenu connexe

PPTX
Threads ppt
PDF
cours DHCP IPv4 et IPv6
PDF
Cours routage inter-vlan
PDF
Systèmes d'Exploitation - chp1-introduction
PPTX
Process management in linux
PDF
Cours Vlan
PPTX
Robot Framework
PDF
Mise en place d'active directory sous windows serveur 22
Threads ppt
cours DHCP IPv4 et IPv6
Cours routage inter-vlan
Systèmes d'Exploitation - chp1-introduction
Process management in linux
Cours Vlan
Robot Framework
Mise en place d'active directory sous windows serveur 22

Tendances (20)

PDF
Kinh nghiệm triển khai Microservices tại Sapo.vn
PDF
Routage ospf
PDF
1 - Généralités - Réseaux Informatiques.pdf
PDF
Methodes d'accès dans les réseaux locaux
PDF
Les commandes CISCO (routeur)
PDF
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
PDF
Cours ACL IPv4 et IPv6
PPTX
PDF
Robot Framework Introduction
PDF
Support distributed computing and caching avec hazelcast
ODP
Présentation de Robot framework
PPT
Process Synchronization
PPTX
Chorus - Distributed Operating System [ case study ]
PDF
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
PDF
Cours design pattern m youssfi partie 7 facade bridge flyweight
PDF
Formation jmeter
PDF
PDF
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
PDF
Corrige tp java
Kinh nghiệm triển khai Microservices tại Sapo.vn
Routage ospf
1 - Généralités - Réseaux Informatiques.pdf
Methodes d'accès dans les réseaux locaux
Les commandes CISCO (routeur)
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Cours ACL IPv4 et IPv6
Robot Framework Introduction
Support distributed computing and caching avec hazelcast
Présentation de Robot framework
Process Synchronization
Chorus - Distributed Operating System [ case study ]
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Cours design pattern m youssfi partie 7 facade bridge flyweight
Formation jmeter
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
Corrige tp java
Publicité

Similaire à Multithreading (20)

PDF
PDF
Chapitre -5-les Thread avec java .pdf
PDF
Java - programmation concurrente
PPTX
4 asynch task_services_thread
PDF
Systèmes parallèles-programmation des sys
PDF
Cours java avance avancé thread arraylist
PDF
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
PPTX
les Threads
PDF
Programmation des Threads en java
PPT
Les Threads.ppt
PDF
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
PDF
Concepts de base O.O (1)
PPT
Cours java smi 2007 2008
PPT
Cours java smi 2007 2008
PDF
Mécanisme de planification de tâches
PPTX
Chap5THREADChap5Chap5THREADChap5THREADTHREAD.pptx
PDF
CorrigesDesExercices_ProgrammationOrienteeObjet_Bersini.pdf
PPT
0242-formation-j2eereeeeeeeeeeeeeeeeeeeee.ppt
PPT
rferfergergergergergergergergergergergerger
Chapitre -5-les Thread avec java .pdf
Java - programmation concurrente
4 asynch task_services_thread
Systèmes parallèles-programmation des sys
Cours java avance avancé thread arraylist
Wilfreid K. AGBO et Grégoire J. MONEYENGONO - Java thread
les Threads
Programmation des Threads en java
Les Threads.ppt
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
Concepts de base O.O (1)
Cours java smi 2007 2008
Cours java smi 2007 2008
Mécanisme de planification de tâches
Chap5THREADChap5Chap5THREADChap5THREADTHREAD.pptx
CorrigesDesExercices_ProgrammationOrienteeObjet_Bersini.pdf
0242-formation-j2eereeeeeeeeeeeeeeeeeeeee.ppt
rferfergergergergergergergergergergergerger
Publicité

Plus de Ghazouani Mahdi (8)

PPTX
Soa & services web
PDF
Memo java
PPT
Mécanismes de sécurité
PPTX
J2EE vs .NET
PPT
Architecture des Systèmes Logiciels
PPTX
Hibernate
PPTX
Moteurs&méta-moteurs de recherche
Soa & services web
Memo java
Mécanismes de sécurité
J2EE vs .NET
Architecture des Systèmes Logiciels
Hibernate
Moteurs&méta-moteurs de recherche

Multithreading

  • 1. Ministère de l’Enseignement Supérieur de laRecherche Scientifique et de la technologie*** * ***Université de la Manouba*** * ***Ecole Nationale des Sciences de l’InformatiqueAspects avancés de JAVAMultithreadingPrésenté par : Ghazouani Mahdi
  • 2. Classe ThreadCréation d’un ThreadAccès simultanéSynchronisationEtats d’un ThreadSOMMAIREDéfinitionAvantages / InconvénientsConseils pratiques
  • 3. DéfinitionCapacité d'un programme à lancer simultanément plusieurs processus de traitement.
  • 4. Avantages / InconénientsConsommation de moins de ressources par rapport à plusieurs processus s'exécutant en même temps.
  • 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. La complexité des programmes utilisant des processus légers.Classe Thread (1/2)Package : java.lang
  • 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. Un thread possède une priorité et un nom.Classe Thread (2/2)currentThread(): retourne le thread en cours d'exécution
  • 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. join() : opération bloquante - attend la fin du thread pour passer à l'instruction suivanteCréation d’un Thread (1/3)Pour que les traitements d'une classe soient exécutés dans un thread, il faut obligatoirement que cette classe implémente l'interface Runnable.
  • 20. Deux façons de définir une telle classe
  • 21. la classe hérite de la classe Thread
  • 22. La classe implémente l'interface RunnableCréation d’un Thread (2/3)Dérivation de la classe Threadpackage com.personal.threadTest;public class MonThread1 extends Thread { public staticvoid main(String[ ] args) { Thread t = new MonThread1();t.start(); } public voidrun() {int i = 0; for (i = 0; i > 10; i++) {System.out.println(" " + i); }}}
  • 23. Création d’un Thread (3/3)Création avec l'interface Runnablepackage 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. Accès simultané (1/2)Cas où 2 threads s'exécutent en même temps et veulent accéder à la même ressource ==> Il ne faut pas qu'ils le fassent en même temps. Sécurisation d'une méthode
  • 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 () {...}
  • 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. Synchronisation Chaque objet possède un verrou ou moniteur
  • 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. Acquérir le verrou d'un objet est couteux. Pour éviter une dégradation des performances, il faut que les sections critiques soient courtes et utilisés à bon escient. Un appel à une méthode synchronisée coute 4 fois plus cherEtats d’un Thread Nouveau : il a été crée mais start() n'est pas encore appelé
  • 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. Bloqué : l'ordonnanceur ignore le threadConseils pratiques Maintien en cohérence: Éviter l'utilisation de :
  • 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. Dégradation en performance..Merci de votreattentionhttp://www.slideshare.net/mahdiSolution