import java.util.Vector ; class Producteur extends Thread { static final int MAXFILE = 5; static final int MAXMESSAGES = 50; private Vector messages; private int nbMessage; public Producteur() { messages = new Vector(); nbMessage = 0; } public void run(){ try { while (nbMessage < MAXMESSAGES) { insererMessage(); System.out.println("Message numéro "+nbMessage+" produit"); nbMessage++; sleep(1000); } } catch (InterruptedException e) {} } private void insererMessage () throws InterruptedException { while (messages.size() == MAXFILE) { System.out.println("File pleine"); } messages.addElement(new java.util.Date().toString()); } public String recupererMessage() throws InterruptedException { while (messages.size() == 0) { System.out.println("File vide"); } String message = (String)messages.firstElement(); messages.removeElement(message); return message; } } class Consommateur extends Thread { static final int MAXMESSAGES = 50; private int nbMessage; Producteur producteur; Consommateur(Producteur p) { producteur = p ; nbMessage=0; } public void run(){ try { while (nbMessage < MAXMESSAGES) { String message = producteur.recupererMessage(); System.out.println("Message numéro "+nbMessage+" recu : " +message); nbMessage++; sleep(2000); } } catch (InterruptedException e) {} } }