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).