12_02_자바_Timer/TimerTask

 안녕하세요 Mr_ChooC(coding)AI 입니다~

오늘은 TimerTimerTask 클래스에 대해서 알아보도록 하겠습니다. 지금까지 한 내용 중에 잘 모르시는 부분이 있으시다면 앞의 포스트를 참고해 주세요~

실습 코드는 하기 github을 참조해 주세요

Github: https://github.com/Chooyoungjun/javastudy/tree/main/13_02_Timer_TimerTask

1.     Timer/TimerTask 클래스란

개발자가 원하는 시간에 실행 하거나 특정 시간 간격으로 실행되도록 명령프로그램 처리하는 클래스 즉 TimerTask들의 스케줄을 정해서 실행 시키는 방식이라고 말 할 수 있습니다.

2.     사용방법

-      TimerTask를 상속 받는 클래스 선언

(상속에 대해서 잘 모르시면 예정 포스트 정리한 내용을 참고 부탁 드리겠습니다.)

(https://choocai.blogspot.com/2021/12/08-override.html )

-      TimerTask 클래스의 run 추상 메서드에서 하고 싶은 작업 오버라이딩

(오버라이딩에 대해서 잘 모르시면 링크 참조 부탁 드리겠습니다. )

(https://choocai.blogspot.com/2021/12/08-override.html )

-      Timer 객체 생성 후 원하는 시간을 매개 변수 값으로 전달

(매개변수에 대해서 잘 모르시면 하기 링크 참조 부탁 드리겠습니다. )

( https://choocai.blogspot.com/2021/12/07java.html )

 

3.     문법

-      TimerTask를 상속 받는 클래스 선언

class Work1 extends TimerTask { … }

-      TimerTask 클래스의 run 추상 메서드에서 하고 싶은 작업 오버라이딩

public void run() {…}

-      Timer 객체 생성 후 원하는 시간을 매개 변수 값으로 전달

Timer t = new Timer(true);

TimerTask w1 = new Work1();

t.schedule(w1,3000);

이렇게 문법만 가지고 이해하기 힘들기 때문에 아래에서 바로 실습을 해 보도록 하겠습니다.

4.     실습

실습은 시간을 조정하여 처음 작업은 4초후 실행 2번째 작업은 1초후 실행으로 해서 작업 순서가 어떻게 나오는지 확인하는 실습을 진행해 보겠습니다.


위의 실습과 같이 코드 명령이 위에서 아래로 실행 되지 않고 순서가 바뀌어서 실행 되는 것을 확인 할 수 있습니다. 그리고 여기에서 집고 넘어가야 할 부분은 Interrupted Exception 부분 입니다. Thread에서 sleep을 실행하면 명령실행에서 흐름을 방해 하는 것이기 때문에 interrupted Exception이 발생을 합니다. 그렇기 때문에 throws 설정을 해 주어야지만 코드가 실행 되는 점을 꼭 확인해 주세요 잘 모르시면 exception 부분 복습해 주십시오!( https://choocai.blogspot.com/2021/12/10.html)

이렇게 이번 포스트에서는 TimerTimerTask에 대해서 알아 보았습니다. 혹시 궁금한 내용이나 추가적으로 필요한 내용이 있으면 댓글을 달아 주세요!

감사합니다.

 

Comments