위 두 개 클래스는 java.util 라이브러리를 사용하기 때문에, Java에서의 사용과 동일하다.
import java.util.Timer import java.util.TimerTask fun main() { val timer = Timer() timer.scheduleAtFixedRate(object : TimerTask() { override fun run() { // 5초마다 수행할 작업을 여기에 작성 println("작업 수행 시각: ${System.currentTimeMillis()}") } }, 0, 5000) }
- java.util 패키지의 Timer, TimerTask 클래스를 가져온다.
- Timer()로 객체를 생성한다.
- scheduleAtFixedRate 메소드를 호출하여 주기적인 작업을 스케쥴링한다.
- TimerTask 객체를 사용한다.
- object : TimerTask() {...} 는 익명의 클래스를 만들어 TimerTask의 인스턴스를 생성하는 부분이다.
- 두 번째 매개변수는 초기 지연 시간, 세 번째 매개변수는 주기를 작성하는 부분이다.
- TimerTask의 run 메소드를 오버라이드한다.
- 그 안에 주기적으로 실행할 구체적인 작업을 작성한다.
var restWating = 0 val timerWating = Timer() timerWating.scheduleAtFixedRate(object : TimerTask() { override fun run() { restWating = Random.nextInt(11) } }, 0, 5000)
- 현재 콘솔창에서 실행 할 수 있는 식당 주문 프로그램을 구현 중에 있다.
- 랜덤으로 주문 대기 수를 5초마다 갱신해주는 기능을 넣었는데, 이 부분에 적용하였다.
[TIL-240313]