Java-timerklasse
Op Java, Timer is een klasse die behoort tot de java.util pakket. Het verlengt de Voorwerp klasse en implementeert de Serialiseerbaar koppel. De klasse biedt de constructors en methoden die kunnen worden gebruikt om tijdgerelateerde activiteiten uit te voeren. Met behulp van de klasse Timer kunnen we de taak plannen die we op een bepaald tijdstip willen uitvoeren.
Houd er rekening mee dat de klasse Timer een threadveilige klasse is. Het betekent dat alleen een thread de timerklassemethode kan uitvoeren. Een ander punt om op te merken is dat de klasse een binaire heap-datastructuur gebruikt om zijn taak op te slaan.
Timer Java-programma's
Een taak plannen die moet worden uitgevoerd door Timer Thread
ScheduleTimer.java
import java.util.Calendar; import java.util.Timer; import java.util.TimerTask; public class ScheduleTimer { public static void main(String args[]) { //instance of the Timer class Timer timer = new Timer(); TimerTask task = new TimerTask() { //represent the time after which the task will begin to execute int i = 5; @Override public void run() { if(i>0) { System.out.println(i); i--; } else { System.out.println('Wish You Very Happy Birthday!!'); //cancel the task once it is completed timer.cancel(); } } }; //creating an instance of the Calendar class Calendar date = Calendar.getInstance(); //setting the date and time on which timer will begin date.set(2022, Calendar.MARCH, 30,23, 59, 54); //enables the counter to count at a rate of 1 second timer.scheduleAtFixedRate(task, date.getTime(), 1000); } }
Uitgang:
directory in Linux-opdrachten
5 4 3 2 1 Wish You Very Happy Birthday!!
Laten we eens een ander Java-programma bekijken waarin we een taak na een bepaald tijdsinterval hebben uitgevoerd.
TimerDemo.java
import java.util.Timer; import java.util.TimerTask; public class TimerDemo { Timer timer = new Timer(); TimerDemo(int seconds) { //schedule the task timer.schedule(new RemindTask(), seconds*1000); } class RemindTask extends TimerTask { public void run() { System.out.println('You have a notification!'); //terminate the timer thread timer.cancel(); } } //driver code public static void main(String args[]) { //function calling new TimerDemo(10); } }
Uitgang:
You have a notification!
Het duurt 10 seconden voordat het programma een bericht op de console weergeeft.
Start en stop een timer
StartStopTimer.java
import java.util.Timer; import java.util.TimerTask; class Task extends TimerTask { int counter; public Task() { counter = 0; } public void run() { counter++; System.out.println('Ring ' + counter); } public int getCount() { return counter; } } public class StartStopTimer { private boolean running; private Task task; private Timer timer; public StartStopTimer() { timer = new Timer(true); } public boolean isRinging() { return running; } public void startRinging() { running = true; task = new Task(); timer.scheduleAtFixedRate(task, 0, 3000); } public void doIt() { running = false; System.out.println(task.getCount() + ' times'); task.cancel(); } public static void main(String args[]) { StartStopTimer phone = new StartStopTimer(); phone.startRinging(); try { System.out.println('started running...'); Thread.sleep(20000); } catch (InterruptedException e) { } phone.doIt(); } }
Uitgang:
Op dezelfde manier kunnen we ook een afteltimer maken met behulp van de klasse Timer.