Bonjour à tous,

Je n'arrive pas à comprendre un programme qui utilise des threads : c'est deux classes, une qui met des int dans un buffer, l'autre qui les prend.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Producteur.java
public class Producteur extends Thread {
    private Buffer buf;
    private int identité;
    public Producteur(Buffer c, int n) {
        buf = c; this.identité = n;
    }
public void run() {
   for (int i = 0; i < 100; i++) {
       buf.mettre(i);
       System.out.println("Producteur #" + this.identité 
                        + " met : " + i);
       try { sleep((int)(Math.random() * 100));}
       catch (InterruptedException e) { }
       }
    }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Consommateur extends Thread {
    private Buffer buf;
    private int identité;
     public Consommateur(Buffer c, int n) {
        buf = c;
        this.identité = n;
    }
    public void run() {
        int val = 0;
        for (int i = 0; i < 10; i++) {
            val = buf.prendre();
            System.out.println("Consommateur #" + 
                  this.identité + " prend: " + val);
        }
    }
}
Ce que j'ai du mal à comprendre c'est le but du sleep dans la classe Producteur.
Pouvez-vous m'éclairer ?

Merci d'avance.