Java – Les Threads - 19/11/03 1
Le multitâche en Java
q Objectifs
♦ Faire plus d’une chose à la fois
Application multi tâches
Systèmes d’exploitation WindowNT et successeurs, Unix,
Linux, …
Application interactive
Calcul
Dialogue (ascenseurs, menus, …)
♦ Aller plus vite
Calcul parallèle
Résolution de matrice
♦ Faire tourner des tâches en fond
Sauvegarde automatique régulière
Consultation périodique pour remise à jour
File manager
Animation, son, …
Java – Les Threads - 19/11/03 2
L’informatique temps réel en Java
q Programmation par Tâches
♦ Notion d’événements
♦ Synchronisation de tâches
♦ Rendez vous
♦ Priorités des tâches
q La réponse du langage Java
♦ La notion de Thread
♦ Le multi Threading (multi tâches)
q Les problèmes liés à Java
♦ Pas de contrôle précis du planning de déclenchement
des tâches
Des tâches intempestives
Ramasse miettes
Des lenteurs
Java – Les Threads - 19/11/03 3
La notion de Thread
q Rappel : un programme séquentiel mono tâche
♦ Un début, une séquence d’exécution, une fin
Un pointeur de programme
♦ Une pile de mémoire pour gérer les appels
q Un programme multi tâches
♦ Tâche = Thread
♦ Un ou plusieurs Threads tournent dans un
programme
♦ Chaque Thread dispose de :
Un début, une séquence d’exécution, une fin
Son contexte d’exécution
Un pointeur de programme
Une pile mémoire
Une priorité
Java – Les Threads - 19/11/03 4
Comment créer des Threads en Java
q Les Threads sont des objets
♦ classe java.lang.Thread
♦ Les instances de Thread sont des tâches
Par exemple :
Thread t1 = new Thread("t1");
Thread t2 = new Thread("t2");
Thread t3 = new Thread("t3");
t1.start();
t2.start();
t3.start();
Les 3 tâches, t1, t2, et t3 s’exécutent simultanément
q Les tâches implémentent l’interface Runnable
interface java.lang.Runnable => méthode run()
q Exécution simultanée ?
Un seul processeur
Temps partagé
Priorité des tâches (ici la même pour toutes les tâches)
Java – Les Threads - 19/11/03 5
Créer une tâche en étendant la classe
Thread
La création d’une tâche passe par :
La dérivation de la classe Thread,
La surcharge de la méthode run() de la classe Thread
Le lancement du Thread par la méthode start() qui
appelle la méthode run().
q Un exemple
L’exemple suivant montre le parallélisme en Java à l'aide
d'une classe qui dérive de la classe Thread.
La classe pour le programme principal
public class MultiThreadDemo0 {
public static void main(String args[]) {
Joueur j1 = new Joueur("j1");
Joueur j2 = new Joueur ("j2");
Joueur j3 = new Joueur ("j3");
j1.start();
j2.start();
j3.start();
}
}
i Un seul programme, 3 tâches s’exécutant
« simultanément »
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!