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