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 중국어 홈페이지를 참고해주세요!