logo

Java에서 타이머를 설정하는 방법은 무엇입니까?

자바 타이머 클래스

자바에서는 시간제 노동자 에 속하는 클래스입니다. java.util 패키지. 그것은 확장합니다 물체 클래스를 구현하고 직렬화 가능 상호 작용. 클래스는 시간 관련 활동을 수행하는 데 사용할 수 있는 생성자와 메서드를 제공합니다. Timer 클래스를 사용하면 특정 시간에 실행하려는 작업을 예약할 수 있습니다.

Timer 클래스는 스레드로부터 안전한 클래스입니다. 이는 스레드만이 타이머 클래스 메소드를 실행할 수 있음을 의미합니다. 클래스가 작업을 저장하기 위해 이진 힙 데이터 구조를 사용한다는 점에 주목해야 합니다.

타이머 자바 프로그램

타이머 스레드에 의해 실행될 작업 예약

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

산출:

자바 연결
 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초가 걸립니다.

타이머 시작 및 중지

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

산출:

Java에서 타이머를 설정하는 방법

마찬가지로 Timer 클래스를 사용하여 카운트다운 타이머를 만들 수도 있습니다.