Java Timer 클래스 데몬스레드로 실행 top2blue 2016. 7. 29. 19:30 package me.example.timer; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /* Timer클래스 * Timer 클래스의 기본 생성자(즉, 파라미터가 없는 생성자)를 사용하여 Timer 클래스를 생성할 경우 * Timer 클래스와 관련된 작업을 실행할 때 사용되는 쓰레드는 데몬 쓰레드로 실행되지 않는다. * 앞의 예제에서 jobScheduler.cancel() 부분을 삭제한다면 어플리케이션은 종료하지 않고 계속해서 * 실행될 것이다. 데몬 쓰레드로 지정할 지의 여부를 입력받을 수 있는 생성자를 제공하고 있으므로 * true로 실행시 데몬 쓰레드로 설정된다. * =================================================================================================== */ public class TimerEx02 { public static void main(String[] args) { Timer jobScheduler = new Timer(true); // 데몬스레드로 실행 // MyTimeTask가 계속 살아있어 프로그램 종료되지않음 // Timer jobScheduler = new Timer(); MyTimeTask task = new MyTimeTask(); jobScheduler.scheduleAtFixedRate(task, 1000, 3000); // 1초후 3초간격으로 실행 try { Thread.sleep(10000); // 10초 동안 멈춤 } catch (InterruptedException ex) { ; } //jobScheduler.cancel(); // 작업 취소 } static class MyTimeTask extends TimerTask{ @Override public void run() { System.out.println(new Date().toLocaleString()); } } }