Utilizzo della classe Timer e dell’interfaccia TimerTask in Java
tramite la classe Timer è possibile schedulare un’azione, che verrà eseguita ogni tot millisecondi. L’utilizzo è molto semplice:
Occorre definire una classe che estenda l’interfaccia TimerTask, ad esempio:
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Ilthread extends java.util.TimerTask {
String nome;
public Ilthread(String nome){
this.nome = nome;
}
public void run(){
System.out.println("Thread: " + nome + " - " + getData());
}
private String getData(){
...
}
}
Per utilizzarla è sufficiente:
Ilthread trd1 = new Ilthread("1");
Timer orologio = new Timer();
orologio.schedule(trd1, 0, 10000);
Ed il gioco è fatto. Per fare una prova, ho creato un’altra classe, chiamata IlthreadCrash, dove ho sostituito il metodo run con il seguente:
public void run(){
int i = 10 / 0;
System.out.println("Thread: " + nome + " - " + getData());
}
forzando così una situazione di errore. Il codice:
Ilthread trd1 = new Ilthread("1");
Timer orologio = new Timer();
orologio.schedule(trd1, 0, 10000);
Ilthread trd2 = new Ilthread("2");
Timer orologio2 = new Timer();
orologio2.schedule(trd2, 0, 7000);
IlthreadCrash trd3 = new IlthreadCrash("3");
Timer orologio3 = new Timer();
orologio3.schedule(trd3, 0, 4000);
si ottiene:
Quindi i primi due thread continuano tranquillamente a rimanere in esecuzione, mentre il terzo, che è andato in crash ha terminato la sua corsa.
Leave a Reply