TP de Java avancé n°5
Exercice 1.
Écrire un programme qui :
- Écrit
A
- Lance un thread qui écrit
B
- Attend la terminaison du thread précédent
Exercice 2.
Écrire un programme avec un interblocage.
Est-il possible de la faire avec le seul thread main
?
Exercice 3.
- Écrire un programme qui lance deux threads de telle sorte que chaque thread affiche son nom une fois par seconde.
- Modifier le programme pour que main, de manière aléatoire et toutes les cinq secondes, soit interrompe un thread vivant au hasard, soit lance un nouveau thread. Il faut faire en sorte que l’interruption arrête le thread.
Exercice 4.
Écrire un programme qui lance n
threads et qui affichent leur noms à tour de rôle
Exercice 5.
- Écrire un programme qui lance
n
threads et qui affichent leur noms en boucle infinie.
- Modifier le programme pour que la thread main affiche régulièrement le nombre d’affichage de chaque thread.
- Modifier le programme pour que chaque thread puisse avoir une avance d’au plus 5 affichages sur les autres
Exercice 6.
Réaliser une implémentation de la méthode ExecutorService.invokeAny
qui respecte sa spécification.
Réaliser une implémentation qui prend une liste de Callable et retourne un Iterator des valeurs retournées dans l'ordre de terminaison des threads exécutant les Callable. On créera dans un premier temps un thread par Callable puis un nombre fixé de thread dans un second temps.