logo

Java'da Zamanlayıcı Nasıl Ayarlanır?

Java Zamanlayıcı Sınıfı

Java'da, Zamanlayıcı ait bir sınıftır java.util paket. Uzatır Nesne sınıf ve uygular Serileştirilebilir arayüz. Sınıf, zamanla ilgili etkinlikleri gerçekleştirmek için kullanılabilecek yapıcıları ve yöntemleri sağlar. Timer sınıfını kullanarak yürütmek istediğimiz görevi belirli bir zamanda planlayabiliriz.

Timer sınıfının iş parçacığı açısından güvenli bir sınıf olduğunu unutmayın. Bu, timer sınıfı yöntemini yalnızca bir iş parçacığının yürütebileceği anlamına gelir. Dikkat edilmesi gereken bir diğer nokta, sınıfın görevini depolamak için ikili yığın veri yapısını kullandığıdır.

Zamanlayıcı Java Programları

Zamanlayıcı İş Parçacığı Tarafından Yürütülecek Bir Görevi Zamanlama

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); } } 

Çıktı:

daktilo ok işlevi
 5 4 3 2 1 Wish You Very Happy Birthday!! 

Belirli bir zaman aralığından sonra bir görevi yürüttüğümüz başka bir Java programına bakalım.

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); } } 

Çıktı:

 You have a notification! 

Programın mesajı konsolda görüntülemesi 10 saniye sürer.

Zamanlayıcıyı başlatma ve durdurma

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(); } } 

Çıktı:

Java'da Zamanlayıcı Nasıl Ayarlanır

Benzer şekilde Timer sınıfını kullanarak bir geri sayım sayacı da oluşturabiliriz.