Skip to content

코루틴 빌더

Published: at 오전 07:49

Table of contents

Open Table of contents

launch 빌더

runBlocking 빌더

코루틴이 스레드를 블로킹하지 않고 작업을 중단시키기만 하는 것이 일반적인 법칙입니다. 하지만 블로킹이 필요한 경우도 있습니다.

메인 함수는 runBlocking 대신에 suspend를 붙여 중단 함수로 만드는 방법을 주로 사용합니다.

async 빌더

구조화된 동시성

다른 코루틴 빌더와 달리 runBlockingCoroutineScope를 확장하지 않습니다. runBlocking은 자식이 될 수 없으며 루트 코루틴으로만 사용될 수 있다는 것을 의미합니다.

현업에서의 코루틴 사용

중단 함수는 다른 중단 함수들로부터 호출되어야 하며, 모든 중단 함수는 코루틴 빌더로 시작되어야 합니다.

suspend fun getArticlesForUser(
  userToken: String?,
): List<ArticleJson> = coroutineScope {
  val articles = async { getArticles(userToken) }
  val user = userService.getUser(userToken)
  articles.await()
  .filter { canSeeOnList(user, it) }
  .map { it.toArticleJson() }
}

코틀린 코루틴