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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !