Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    24

    chi mi da una mano a capire questa classe?

    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!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: chi mi da una mano a capire questa classe?

    Originariamente inviato da ybor4
    Non capisco il metodo System.currentTimeMillis()...
    currentTimeMillis() ritorna il numero di millisecondi passati dal 01/01/1970 00:00:00 UTC.

    Il codice prende all'inizio il tempo e cicla fino a quando è passato un tot di tempo (lo calcola facendo una differenza, appunto). Si tratta comunque di un "polling", che spreca molto tempo del processore.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    24
    e con
    codice:
    buffer.insert("Message #"+cont+" at time "+time);
    Cosa si fa?

    PS Il simbolo ! è la negazione vero?

    Cosa intendi per

    assati dal 01/01/1970 00:00:00 UTC.???

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ybor4
    e con
    codice:
    buffer.insert("Message #"+cont+" at time "+time);
    Cosa si fa?
    Qui il + concatena le stringhe.

    Originariamente inviato da ybor4
    PS Il simbolo ! è la negazione vero?
    Sì, negazione logica per il tipo boolean.

    Originariamente inviato da ybor4
    Cosa intendi per

    assati dal 01/01/1970 00:00:00 UTC.???
    Il numero di millisecondi che sono trascorsi da quella data.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.