TP 11 de Système 1ere Anne Informatique 2005-2006 : Threads (1)

Exercice 1

Écrire un programme en mode texte, qui rempli un tableau de 1000 cases. Un thread remplira les cases d'indice pairs avec comme valeur l'indice de la case divisé par deux, et le second remplira les cases d'indice impair avec comme valeur l'indice de la case divisé par trois. Le main attendra que les deux threads aient terminé pour afficher le contenu du tableau.

Exercice 2

Simulation simple d'une imprimante. Créez une classe Imprimante, dotée d'une méthode (surprise)... imprimer, qui prendra en argument une chaîne de caractère et, comme il s'agit d'une imprimante trèèèès lente, en affichera le contenu à raison d'un caractère par seconde.

Maintenant, créez trois threads, qui utiliseront la même imprimante. Le premier tentera d'afficher 100 fois un 'a', le second 100 fois un 'b', et le troisième 100 fois un 'c'. Que se passe-t-il ?

Modifiez votre programme pour que qu'un thread qui veut imprimer attende que l'imprimante soit libre. Par ailleurs, on veut que la méthode imprimer rende immédiatement la main dès que l'impression commence (celle-ci doit s'effectuer en tâche de fond).


Serge ROSMORDUC