> Java > java지도 시간 > 본문

Java 타이머(Timer, TimerTask) 상세 설명 및 예제 코드

高洛峰
풀어 주다: 2017-01-11 16:14:43
원래의
1500명이 탐색했습니다.

Java Timer

JAVA에서 타이머 기능을 구현하는 데 사용되는 두 가지 클래스는 Timer와 TimerTask입니다

Timer 클래스는 작업을 수행하는 데 사용되는 클래스입니다. 매개변수 사용

타이머에는 작업 실행을 위한 두 가지 모드가 있습니다. 가장 일반적으로 사용되는 것은 일정이며 두 가지 방법으로 작업을 실행할 수 있습니다. 1: 특정 시간(데이터)에, 2: 고정된 시간 이후 시간(int 지연) 두 가지 방법 모두 작업 실행 빈도를 지정할 수 있습니다. 하나는 간단하고 다른 하나는 내부 클래스

를 사용합니다.

먼저 클래스를 작성하고

public class TimeTest {
public static void main(String[] args) {
   
   Timer timer = new Timer();
   timer.schedule(new MyTask(),1000,2000);
}
로그인 후 복사
클래스를 작성하고

public class MyTask extends TimerTask{
 
  @Override
  public void run() {
 System.out.println("开始运行");    
  }
}
로그인 후 복사
이렇게 하면 간단한 타이머를 완성할 수 있지만 다른 방법도 있습니다. 이 두 클래스를 하나의 클래스, 즉 내부 클래스

2. 내부 클래스

public class SerchRun {
 
  protected static void startRun(){
    Timer timer = new Timer();
     TimerTask task =new TimerTask(){
       public void run(){
         System.out.println("开始运行"); //在这写你要调用的方法
       }
     };
   timer.scheduleAtFixedRate(task, new Date(),2000);//当前时间开始起动 每次间隔2秒再启动
   // timer.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("this is task you do6");
  }
 },d1,3*60*1000);
로그인 후 복사
간격은 3분이고 지정된 시작 시간은 2005/12/30 14:10:00입니다. 이 프로그램을 14:17에 실행하면. :00 이면

this is task you do6   //14:10
this is task you do6   //14:13
this is task you do6   //14:16
로그인 후 복사
이 즉시 3번 인쇄되고 다음 실행 시간은 14:20이 아닌 14:19입니다. 즉, 타이밍은 실행 시간이 아닌 지정된 시작 시간부터 시작됩니다.

그러나 위에서 스케줄 방식을 사용하면 간격은 3분이고 지정된 시작 시간은 2005/12/30 14:10:00이므로 프로그램이 14:17:00에 실행되면 , 프로그램이 즉시 한 번 실행됩니다. 그리고 다음 실행 시간은 14:10(14:19)부터 시작하는 기간이 아닌 14:20입니다.

읽어주셔서 감사합니다. 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!

Java 타이머(Timer, TimerTask)에 대한 자세한 설명과 예제 코드는 PHP 중국어 홈페이지를 참고해주세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿