Académique Documents
Professionnel Documents
Culture Documents
Exercice 1:
Créer une classe ClasseThread, dérivant de Thread, ayant pour fonction d’écrire sur la sortie
standard son nom, ainsi qu’un compteur. (de 1 à 100 000 par exemple)
Depuis une classe à part, créer 4 objets de ClasseThread s’exécutant simultanément.
Modifiez le code de l’exercice précédent de sorte à utiliser l’interface Runnable.
Exercice 2:
Ecrire une application JAVA qui lance trois threads voitures dans une course.
L’application est composée des classes suivantes : Véhicule, Piste, PisteLine et Course.
Exercice 3
Ecrivez en Java un programme qui utilise deux threads en pseudo-parallèle :
‐ Le premier (T1) affiche les nombres pairs (de 0 à 20).
‐ Le second (T2) affiche les nombres impairs (de 1 à 19).
1- Déterminez le résultat de ce programme lors de son exécution ?
2- Donner une nouvelle version du programme Java de façon que l’exécution s’effectue en
alternance entre T1 et T2 afin d’avoir un affichage de 0 à 20 en ordre.
Exercice 4
Ecrivez un programme dont le thread principal lance et nomme trois nouveaux threads. Chaque
thread ainsi créé doit exécuter 10 fois les actions suivantes :
‐ Attendre un temps aléatoire compris entre 0 et 200 ms,
‐ Puis afficher son nom
Le thread principal devra attendre la fin de l'exécution des trois threads qu'il a créés avant de
terminer son exécution.
Exercice 5
Ecrivez en Java un programme qui utilise quatre threads en pseudo-parallèle :
‐ T1 affiche les nombres premiers entre 1 et 249.
‐ T2 affiche les nombres premiers entre 250 et 499.
‐ T3 affiche les nombres premiers entre 500 et 749.
‐ T4 affiche les nombres premiers entre 750 et 999.
Le thread principal devra attendre la fin de l'exécution des quatre threads qu'il a créés avant de
terminer son exécution.
Exercice 6
On souhaite simuler un combat entre deux boxeurs B1 et B2. Un boxeur est défini par son nom et
son énergie. L’énergie est initialisée à 100. Pendant le combat, chaque boxeur donne un coup à son
adversaire en alternance. Un coup a une vitesse et une force définie comme suit:
vitesse = (int) (Math.random()*600+1): durée d’attente entre deux coups.
force = (int)(Math.random()*6+1): à soustraire de l’énergie de l’adversaire.
Le premier boxeur ayant une énergie =0 est le perdant.
Ecrire une classe qui simule un boxeur.
Ecrire une classe qui simule un combat.
Exercice 7
On veut afficher dans une fenêtre un compteur qui, partant de 0, s’incrémente régulièrement (par
exemple toute les secondes). On y dispose quatre boutons : « démarre », « suspendre »,
« reprendre » et quitter, qui permettent respectivement de lancer, d’interrompre et de reprendre
le compteur, et de quitter l’application.
1- Ecrire la classe Compteur dérivée de la classe Thread, qui a trois attributs : un entier cpt
représentant la valeur du compteur ; un entier tempo donnant le temps mort entre deux
incrémentation ; et un champ de type MonFrame.
2- Ecrire la classe MonFrame, sous classe de JFrame, qui a six champs : un JTextField ou un JLabel
pour afficher la valeur du compteur, les quatre boutons et un champ de type Compteur.
Exercice 8
Créer une fenêtre qui affiche l’heure actuelle et qui actualise toutes les secondes.
Pour ce faire :
1- Créer une classe Clock qui dérive de la classe JTextField et qui implémente l’interface Runnable.
La classe Clock contient :
L’attribut : DateFormat forme; //pour modifier le format de la date
Un constructeur sans paramètres qui initialise l’attribut forme pour afficher l’heure
seulement.
Le setter setForme() qui modifie le format de la date.
La redéfinition de la méthode run pour actualise l’heure toutes les secondes.