Χρονόμετρο (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); } }