Kotlin/포스팅

코틀린 티커

짜집퍼박사(짜박) 2024. 1. 10. 00:57

코틀린에서 티커(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