Threads

Mots clés

Thread, Runnable, synchronizednotify

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 :
  1. Toujours verrouiller lors de la mise à jour de variables
  2. Toujours verrouiller lors de l'accès à des variables mutables
  3. 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).