TP de Java avancé n°5

Exercice 1.

Écrire un programme qui :

Exercice 2.

Écrire un programme avec un interblocage.

Est-il possible de la faire avec le seul thread main ?

Exercice 3.

  1. Écrire un programme qui lance deux threads de telle sorte que chaque thread affiche son nom une fois par seconde.
  2. 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.

  1. Écrire un programme qui lance n threads et qui affichent leur noms en boucle infinie.
  2. Modifier le programme pour que la thread main affiche régulièrement le nombre d’affichage de chaque thread.
  3. 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.