Χρονόμετρο (Timer)

Χρησιμοποιούμε ένα Timer για να εκτελούμε εντολές σε ορισμένο χρόνο ή επαναληπτικά σε ορισμένα χρονικά διαστήματα. Ιδιαίτερα χρήσιμο σε εφαρμογές games κα animation.

Χρειαζόμαστε την κλάση Timer και την κλάση TimerTask η οποία είναι ένα νήμα και στην υλοποιημένη μέθοδο run() καταχωρούμε τις εντολές προς εκτέλεση.

Στα παρακάτω παραδείγματα φαίνεται η υλοποίηση ενός Timer σε διαφορετικές εκδοχές.

public class MainTimer {
	public static void main(String[] args) {
		long delay = 5000;
		long period = 1000;
		MyTimerTask task = new MyTimerTask();
		Timer timer = new Timer();
		timer.schedule(task, delay, period);
	}
}

class MyTimerTask extends TimerTask {
	@Override
	public void run() {
		System.out.println("MainTimer");
	}
}
public class TimerNew {
	public static void main(String[] args) {
		long delay = 5000;
		long period = 1000;
		TimerTask task = new TimerTask() {
			@Override
			public void run() {
				System.out.println("TimerNew");
			}
		};
		Timer timer = new Timer();
		timer.schedule(task, delay, period);
	}
}
public class TimerSingle {
	public static void main(String[] args) {
		long delay = 5000;
		long period = 1000;
		Timer timer = new Timer();
		timer.schedule(new TimerTask() {
			@Override
			public void run() {
				System.out.println("TimerSingle");
			}
		}, delay, period);
	}
}

Σχετική τεκμηρίωση:

Timer

TimerTask