Salve.

Ho trovato questa classe, vorrei capirla in dettaglio.

Ecco il codice:

codice:
public class Producer extends Thread {

private BoundedBufferSynchronized buffer;
private long duration;

public Producer(BoundedBufferSynchronized buffer, long d){
    this.buffer=buffer;
    duration = d;
}

public void run(){
    log("starting.");  // invoca il metodo di sotto
    int cont = 0;
    boolean stop = false;
    long startTime = System.currentTimeMillis();
    while (!stop) {
        long time = System.currentTimeMillis();
        if (time - startTime < duration){
            buffer.insert("Message #"+cont+" at time "+time);
            cont++;
        } else {
            buffer.insert("end");
            stop = true;
        }
    }
    log("shutdown.");
}

private void log(String msg){
    System.out.println("[PRODUCER] "+msg);
}

}
Dove BoundedBufferSynchronized è una classe che implementa un buffer sincronizzato

Non capisco il metodo System.currentTimeMillis()... di conseguenza cosa si controlla if (time - startTime < duration) cosa si inserisce con questo codice buffer.insert("Message #"+cont+" at time "+time); e queste due istruzioni...

Aiuto!