코틀린에서 티커(Ticker)는 일정 간격으로 특정 작업을 반복적으로 실행하는 기능을 지원하는 라이브러리 또는 패턴을 의미할 수 있습니다. 티커는 특정 주기나 조건에 따라 코드를 주기적으로 실행할 때 유용합니다.
1. 코루틴을 이용한 티커
코틀린에서는 launch 함수를 사용하여 코루틴을 만들고, delay 함수를 사용하여 일정 시간 동안 대기할 수 있습니다. 이를 활용하여 티커를 구현할 수 있습니다.
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
repeat(5) {
delay(1000) // 1초마다 작업 실행
println("Tick")
}
}
// 다른 비동기 작업 수행 가능
delay(6000)
}
위의 예제에서는 1초마다 "Tick"을 출력하는 티커를 구현했습니다. delay(1000)은 1초 동안 코루틴을 일시 중지하며, 이를 통해 주기적인 작업을 수행할 수 있습니다.
2. Timer 및 TimerTask를 사용한 티커
코틀린에서는 자바의 Timer와 TimerTask 클래스를 활용하여 특정 주기로 작업을 실행할 수 있습니다.
import java.util.*
fun main() {
val timer = Timer()
timer.scheduleAtFixedRate(object : TimerTask() {
override fun run() {
println("Tick")
}
}, 0, 1000) // 1초마다 작업 실행
// 다른 비동기 작업 수행 가능
// 6초 후 타이머 종료
Timer().schedule(object : TimerTask() {
override fun run() {
timer.cancel()
println("Timer canceled")
}
}, 6000)
}
위의 예제에서는 Timer를 사용하여 1초마다 "Tick"을 출력하는 티커를 생성하고, 6초 후에 타이머를 종료합니다.
티커를 사용할 때는 주기적인 작업 외에도 작업 간의 동기화나 예외 처리 등을 고려해야 합니다. 코루틴을 사용하면 비동기적이고 더 유연한 방식으로 티커를 구현할 수 있습니다. 또한, ScheduledExecutorService 등의 더 많은 옵션도 존재하므로 상황에 맞게 선택하여 사용할 수 있습니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 자바 동시성 사용 (0) | 2024.01.10 |
---|---|
코틀린 액터 (0) | 2024.01.10 |
코틀린 동시성 생산자 (0) | 2024.01.10 |
코틀린 동시성 채널 (0) | 2024.01.10 |
코틀린 동시성 통신 (0) | 2024.01.09 |