start()
Remplacez les appels à
start()
par
run()
, que
remarquez-vous ?
Runnable
Reprenez le code de
BinaireAleatoire
et adaptez-le pour
utiliser l’interface
Runnable
.
Créez un compteur commun aux deux threads
un
et
zero
, vous y placerez une fonction
synchronized boolean stepCounter()
qui retournera vrai tant que le compteur
n’aura pas atteint sa limite, et qui retournera tout le temps faux
ensuite. Le but étant d’afficher 30000 chiffres, peu importe que ce
soit des 1 ou des 0.
Reprennez l’exercice précédent en synchronisant les appels à
stepCounter()
dans la méthode
run()
.
Implémentez une file permettant des accès synchronisés. Créez une classe écrivant des valeurs aléatoires dans la file et une classe lisant ces valeurs et les affichant au fur et à mesure. Lancez plusiseurs instances de la classe de lecture et plusieurs instances de la classe d’écriture sur la même file.
Implémentez le problème du diner des philosophes. Faites en sorte (dans la mesure du possible) qu’il n’y ait ni famine ni interblocage.