Timer Java
Timer
è un servizio disponibile nel linguaggio di programmazione Java che consente agli utenti di programmare un evento futuro. Questi eventi futuri possono essere una volta o ripetuti a intervalli di tempo regolari. Possono esserci trigger che usiamo per avviare eventi futuri.
Pianifica un’attività una tantum con Timer
in Java
import java.util.Timer;
import java.util.TimerTask;
public class StopWatch {
Timer timer;
public StopWatch(int seconds) {
timer = new Timer();
timer.schedule(new StopTask(), seconds * 1000);
}
public static void main(String[] args) {
new StopWatch(10);
System.out.println("StopWatch Started.");
}
class StopTask extends TimerTask {
public void run() {
System.out.println("Time Up!");
timer.cancel();
}
}
}
Nel blocco di codice sopra, abbiamo creato una classe pubblica denominata classe StopWatch
. Ha il suo costruttore pubblico, che richiede tempo in secondi. Nel blocco costruttore, viene creata un’istanza del timer. Nell’istanza del timer, viene chiamato il metodo schedule
. Questa attività del metodo consiste nel pianificare l’evento specifico in un determinato periodo di tempo. Richiede due parametri TimerTask
e il ritardo. Definiamo il ritardo in millisecondi. Il metodo genera IllegalArgumentException
quando il ritardo definito definito non è valido, IllegalArgumentException
quando l’attività fornita è già pianificata o annullata. Genera anche NullPointerException
quando l’istanza dell’attività fornita è nulla.
Appena sotto il costruttore, abbiamo il metodo main
da cui inizia l’esecuzione effettiva. Crea una nuova istanza della classe StopWatch
con ritardo definito, che esegue internamente l’istruzione nel blocco costruttore.
Al di sotto del metodo main
, è definita una classe interna denominata StopTask
che estende una classe astratta TimerTask
. TimerTask
è una classe astratta che ha un metodo astratto chiamato metodo run
. Il metodo deve essere sovrascritto nella classe StopTask
e, se non sovrascritto, la classe stessa dovrebbe diventare astratta. Ora nel metodo run
, abbiamo fermato il timer con il metodo cancel
. Il metodo elimina qualsiasi attività attualmente pianificata e termina l’attività timer.
Di seguito è riportato l’output del blocco di codice precedente. La seconda riga viene stampata quando viene rilevato il ritardo nel metodo di pianificazione.
StopWatch Started.
Time Up!
Pianifica un timer ripetuto in Java
Modificheremo il codice sopra per creare un timer ripetuto. Il timer ripetuto viene eseguito ripetutamente a intervalli di tempo regolari.
Nel blocco di codice sottostante, abbiamo creato un’istanza Timer
. L’uso della variabile di istanza consiste nel chiamare un metodo scheduleAtFixedRate
, che pianifica gli eventi futuri. Il metodo ha diverse implementazioni. Quello che abbiamo usato richiede tre parametri. Innanzitutto, un’istanza TimerTask
contiene istruzioni relative all’azione che vogliamo eseguire in futuro. Successivamente, la variabile delay
definisce il tempo impiegato dall’attività o dall’evento per l’esecuzione. Ultimo è il period
che definisce il tempo tra le successive chiamate dell’evento. Questo metodo genera eccezioni che includono le eccezioni NullPointerException IllegalArgument
e IllegalState
.
import java.util.Timer;
import java.util.TimerTask;
public class RepeatedTimer {
public static void main(String[] args) {
Timer timer = new Timer();
System.out.println("Stop Watch Started.");
timer.scheduleAtFixedRate(new RepeatedTask(), 500, 1000);
}
static class RepeatedTask extends TimerTask {
public void run() {
System.out.println("Running!");
}
}
}
Di seguito l’esito senza fine del futuro evento in programma.
Running!
Running!
Running!
Running!
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn