Java java.util.Timer 클래스와 java.util.TimerTask 클래스 top2blue 2016. 7. 29. 18:58 package me.example.timer; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /* Timer클래스 * 백그라운드에서 특정한 시간 또는 일정 시간을 주기로 반복적으로 특정 작업을 실행할 수 있도록 해 준다. * --------------------------------------------------------------------------------------------------- * void schedule(TimerTask task, Date time) * 지정한 시간(time)에 지정한 작업(task)을 수행한다. * --------------------------------------------------------------------------------------------------- * void schedule(TimerTask task, Date firstTime, long period) * 지정한 시간(firstTime) 부터 일정 간격(period)으로 지정한 작업(task)을 수행한다. * --------------------------------------------------------------------------------------------------- * schedule(TimerTask task, long delay) * 일정 시간(delay)이 지난 후에 지정한 작업(task)을 수행한다. * --------------------------------------------------------------------------------------------------- * schedule(TimerTask task, long delay, long period) * 일정 시간(delay)이 지난 후에 일정 간격(period)으로 지정한 작업(task)을 수행한다. * --------------------------------------------------------------------------------------------------- * void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) * 지정한 시간(firstTime)부터 일정 간격(period)으로 지정한 작업(task)을 수행한다. * --------------------------------------------------------------------------------------------------- * void scheduleAtFixedRate(TimerTask task, long delay, long period) * 일정한 시간(delay)이 지난후에 일정 간격(period)으로 지정한 작업(task)을 수행한다. * --------------------------------------------------------------------------------------------------- * boolean cancel() : TimerTask 작업을 취소한다. * =================================================================================================== * TimerTask 클래스 * Timer 클래스가 수행할 작업을 나타낸다. * TimerTask 클래스는 Runnable 인터페이스를 implements 하고 있으며, * 그 외에 몇 가지 필요한 메소드를 정의하고 있다. * --------------------------------------------------------------------------------------------------- * void run() : TimerTask가 실행할 작업 * long scheduledExecutionTime() : 가장 최근에 이 작업이 실행된 시간을 리턴한다. * =================================================================================================== */ public class TimerEx01 { public static void main(String[] args) { Timer jobScheduler = new Timer(); jobScheduler.scheduleAtFixedRate(new TimerTask() { @Override public void run() { System.out.println(new Date().toLocaleString()); } }, 1000, 3000); // 1초후 3초간격으로 실행 try { Thread.sleep(10000); // 10초 동안 멈춤 } catch (InterruptedException ex) { ; } jobScheduler.cancel(); // 작업 취소 } }