Java タイマー クラス
Javaでは、 タイマー に属するクラスです java.util パッケージ。それは、 物体 クラスを実装し、 シリアル化可能 インターフェース。このクラスは、時間関連のアクティビティを実行するために使用できるコンストラクターとメソッドを提供します。 Timer クラスを使用すると、特定の時間に実行するタスクをスケジュールできます。
Timer クラスはスレッドセーフなクラスであることに注意してください。これは、スレッドのみがタイマー クラス メソッドを実行できることを意味します。もう 1 つの注意点は、クラスがタスクを格納するためにバイナリ ヒープ データ構造を使用していることです。
タイマー Java プログラム
タイマースレッドによって実行されるタスクのスケジュール設定
スケジュールタイマー.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); } }
出力:
二分探索のためのPythonプログラム
5 4 3 2 1 Wish You Very Happy Birthday!!
特定の時間間隔の後にタスクを実行する別の Java プログラムを見てみましょう。
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); } }
出力:
You have a notification!
プログラムがコンソールにメッセージを表示するまでに 10 秒かかります。
タイマーの開始と停止
スタートストップタイマー.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(); } }
出力:
同様に、Timer クラスを使用してカウントダウン タイマーを作成することもできます。