Threads
Mots clés
Thread, Runnable, synchronized, notify
Courbes
Cet exemple dessine deux courbes en simultané grâce à deux threads.
Il est composé de deux fichiers : Courbe.java et CourbeApplication.java.
A noter l'utilisation d'une poignée
dans la classe Courbe : la méthode abstraite fonction(double x), et de
java2D pour tracer les courbes.
PingPong
Les quatre exemples de Ping et Pong : PingPong1.java et PingPong1b.java
(Thread vs. Runnable), PingPong2.java et PingPong3.java (utilisation de
synchronized).
Producteur/Consommateur
Un exemple de producteur/consommateur entre plusieurs threads avec
un tampon partagé : Consommateur.java,
Producteur.java, ProducteurConsommateur.java,
Tampon.java.
Verrouillage
Les trois règles de Doug Lea :
- Toujours verrouiller lors de la mise à
jour de variables
- Toujours verrouiller lors de l'accès à
des variables mutables
- Ne jamais verrouiller lors de l'appel
d'une méthode sur un autre objet
Particle
Cet exemple illustre les trois règles de Doug Lea. Il est composé de
3 fichiers : ParticleFrame.java, Particle.java et ParticleComponent.java.
Une deuxième version fait que le déplacement des particules est
simplement interrompu et non remis à zéro comme dans la version 1 :
(ParticleFrame.java, Particle.java et ParticleComponent.java)
Courbes version 2
Une deuxième version plus sophistiquée du dessin de courbes (TestMemoire.java)
utilise une mémoire partagée (Memoire.java) entre
un thread de lecture (Lecture.java) et un
thread d'écriture (Acquisition.java).