본문 바로가기

JAVA

자바 TimerTask

타이머는 자바 스레드처럼 일종의 스레드 클래스이다.

 

어떤 작업을 일정 시간마다 실행하기 위해서는 java.util.Timer 클래스와 java.util.TimerTask 클래스를 사용한다.

 

Timer 클래스 => Timer timer = new Timer()로 초기화해 사용.

 

Timer task = new TimerTask() { @Override }로 사용

@Override 아래에 정의된 run()메소드가 task로 실행된다.

 

.scheduleAtFixedRate() 메서드

 

scheduleAtFixedRate(TimerTask task, long delay, long period)

delay가 지난 후에 period 간격으로 task를 수행한다.

 

TimerTask를 활용한 소스 

public OutScanJobListSaveResult insertLoopTest(HttpServletRequest request) throws Exception{
		OutScanJobListSaveResult outScanJobListSaveResult = new OutScanJobListSaveResult();
        Timer timer = new Timer();
        long delay = 0;
        long period = 1000; // 1초마다 실행
        
        timer.scheduleAtFixedRate(new TimerTask() {
            private int count = 0;

            @Override
            public void run() {
                if (count < 10) {
                    // 1초에 한 번씩 실행할 코드
                    System.out.println("1초에 한 번씩 실행합니다. 횟수: " + (count + 1));
                    
                    outScanMapper.insertLoopTest(count);
                    count++;
                } else {
                    // 1000번 실행 후 타이머 종료
                    timer.cancel();
                }
            }
        }, delay, period);
		
        return outScanJobListSaveResult;

 

 

'JAVA' 카테고리의 다른 글

JSON  (0) 2024.02.20
Optional이란?  (0) 2023.04.21
자바 8 인 액션 1일차  (0) 2021.08.02
자바의 정석 7일차  (0) 2021.08.02
자바의 정석 공부 4일차  (0) 2021.07.14