0% ont trouvé ce document utile (0 vote)
55 vues2 pages

TP1 Thread

Transféré par

Fatoumata Ouane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
55 vues2 pages

TP1 Thread

Transféré par

Fatoumata Ouane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

Série d’exercices : Programmation multitâches

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) ([Link]()*600+1): durée d’attente entre deux coups.
force = (int)([Link]()*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.

2- Créer la classe MonFrame qui contient les attributs:


 heure : JLabel.
 c: Clock .
 ck : JCheckBox
Le JCheckBox sous l’heure indiquant à l’utilisateur s’il veut la date complète (jour+heure) ou
seulement l’heure, puis vous ferez réagir à ce JCheckBox suivant s’il est coché ou non, vous devez
afficher l’heure dans le bon format.
Indication :
Pour cela utiliser la classe DateFormat et notamment ces méthodes getDateInstance() ,
getTimeInstance() et getInstance() . Vous utiliserez également la classe Date.

Vous aimerez peut-être aussi