[Coroutine] 일시 중단 함수(suspend)

업데이트:

일시 중단 함수

launch(), asyc() 과 같은 코루틴 빌더를 사용하여 블록 안에 일시 중단 코드(람다) 를 작성할수 있지만 함수 자체에서 일시 중단 코드를 작성할 수 있다. 이를 일시 중단 함수라고 부른다.

일시 중단 함수를 만들려면 시그니쳐에 suspend 제어자만 추가하면 된다.

suspend fun greetDelayed(delayMills : Long) {

    delay(delayMills)
    println("Hello world")
}

비 일시 중단 코드에서 함수를 호출하려면 다음 예와 같이 코루틴 빌더로 감싸야 한다.

fun main() {

    runBlocking {
        greetDelayed(5000)
    }
}

Reference

코틀린 동시성 프로그래밍(에이콘)

댓글남기기