<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">public class EcoleDesPerroquets16 {  
  public static void main(String[] args) {
    AuTableau autableau = new AuTableau();
    Perroquet16 perroquet1 = new Perroquet16("coco", autableau);
    perroquet1.start();
    Perroquet16 perroquet2 = new Perroquet16("jaco", autableau);
    perroquet2.start();
    String reponse = "bonjour";
    do {
      autableau.enseigner(reponse);
      System.out.println("nouveau mot pour perroquet ? (sinon non)");
      Thread.currentThread().yield();
      reponse = Clavier.lireString();
    }
    while (! reponse.equals("non"));
    System.exit(1);
  }
}

class Perroquet16 extends Thread {
  private String cri;
  private String nom;
  private AuTableau autableau;
  public Perroquet16(String n, AuTableau a)   { 
    super(n);
    nom = n;
    autableau = a ;
    cri = "";
  }
  public void repeter() {
    System.out.println(nom + " "+ cri);
  }
  public void run() {
    while (true) {
      cri = autableau.apprendre();
      for (int n=0; n&lt;3; n++) 
        repeter();
    }
  }
}

class AuTableau {
  private String motAapprendre = null;
  synchronized String apprendre() {
    try {
      wait();     
    } catch (Exception e) {
      e.printStackTrace();
      System.exit(1);
    }
    return motAapprendre;
  }
  synchronized void enseigner (String mot) {
    motAapprendre = mot ;
    notify();    
  }
}
  

</pre></body></html>