JAVA에서 타이머 기능을 구현하는 데 사용되는 두 가지 클래스는 Timer와 TimerTask입니다.
Timer 클래스는 작업을 실행하는 데 사용되는 클래스로 TimerTask를 매개 변수로 받습니다.
Timer에는 작업을 실행하는 두 가지 모드가 있습니다. , 가장 일반적으로 사용되는 것은 두 가지 방법으로 작업을 실행할 수 있는 일정입니다. 1: 특정 시간(데이터), 2: 특정 고정 시간 후(int 지연) 두 방법 모두 작업 실행 빈도를 지정할 수 있습니다. 두 가지 예, 하나는 간단한
이고 다른 하나는 내부 클래스
를 사용하는 것입니다. 1. 간단한 예
먼저 클래스
를 작성합니다. public class TimeTest {
public static void main(String[] args) {
Timer 타이머 = new Timer();
timer.schedule(new MyTask(),1000,2000);
}
그런 다음
public class MyTask extends TimerTask{
@Override
public void run() {
System.out.println("Start running") 🎜> }
}
이런 식으로 간단한 타이머를 완성할 수도 있지만, 이 두 클래스를 하나의 클래스로 작성하는 또 다른 방법이 있는데, 바로 내부 클래스
2. >
public class SerchRun {
protected static void startRun(){
타이머 타이머 = new Timer();
TimerTask 작업 =new TimerTask() {
사용 사용 사용 사용 사용 사용 사용 통해 통해 통해 통해 통해 ' 통해 통해 ' 통해 ' 통해 ' ‐ ‐‐‐ ‐under }; scheduleAtFixedRate (작업, new Date(),2000) //시작 현재 시간에 2초마다 다시 시작
// 타이머.scheduleAtFixedRate(task, 1000,2000) // 매번 1초 후에 시작 2 초 후에 다시 시작
}
public static void main(String[] args) {
SerchRun.startRun();
}
}
schedule과 ScheduleAtFixedRate의 차이점은 지정된 시작이 실행 시간이 현재 시스템 실행 시간보다 이전인 경우, ScheduleAtFixedRate는 경과 시간도 기간으로 실행하지만, Schedule은 경과 시간을 계산하지 않습니다.
예:
SimpleDateFormat fTime = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date d1 = fTime.parse("2005/12/ 30 14:10:00");t.scheduleAtFixedRate(new TimerTask(){
public void run()
{ System.out.println("이것은 당신이 할 작업입니다 do6 ");
}
},d1,3*60*1000);
간격은 3분, 지정 시작 시간은 2005/12/30 14:10:00 입니다. . I 이 프로그램을 14:17:00에 실행하면 즉시 3번 인쇄됩니다.
This is task you do6 //14:10
this is task you do6 //14: 13
이것은 당신이 수행하는 작업입니다6 //14:16
그리고 다음 실행은 14:20이 아닌 14:19에 있습니다. 즉, 타이밍은 실행 시간이 아닌 지정된 시작 시간부터 시작됩니다.
그러나 위에서 스케줄 방식을 사용하면 간격은 3분이고 지정된 시작 시간은 2005/12/30 14:10:00이므로 프로그램이 14:17:00에 실행되면 , 프로그램이 즉시 한 번 실행됩니다. 그리고 다음 실행 시간은 14:10(14:19)부터 시작하는 기간이 아닌 14:20입니다.
JAVA에서 타이머 사용과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!