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

Exercice 1

En utilisant les classes données ici, Écrire un chronomètre que l'on peut lancer et arrêter (On pourra utiliser System.currentTimeMillis()).

Exercice 2

On veut simuler le verrouillage d'une base de données. La base est un bête entiers, dans laquelle plusieurs threads peuvent lire et écrire avec les méthodes :
int lire()
void ecrire(int valeur)
La lecture et l'écriture sont longue (mettons, 5s) [à simuler]. On veut que plusieurs threads puissent lire simultanément, mais que si un thread veut écrire, personne d'autre ne soit en train de lire ni d'écrire. Pour cela on créera un objet partagé nommé VerrouLectureEcriture. On lui pourra lui donner la structure suivante:
class VerrouLectureEcriture {
	private int nombreLecteurs; // Nombre de lecture en cours
	private int nombreEcritures; // Nombre d'écritures en cours

	demandeLecture() {...}
	demandeEcriture() {...}
	finLecture() {...}
	finEcriture() {...}
}
La lecture aura la structure suivante:
demandeLecture();
// lecture proprement dite
finLecture();
la méthode demandeLecture attendra qu'il soit possible de lire. De même la méthode demandeEcriture attendra qu'il soit possible d'écrire.
Serge ROSMORDUC