runBlocking
-
coroutine - runBlocking, coroutineScope, suspend개발 2023. 2. 28. 20:30
runBlocking runBlocking은 코루틴 월드에 있지 않는 곳과 코루틴 월드를 이어주는 대표적인 함수다. 일반 메인 함수에서는 launch, async 같은 코루틴을 실행할 수 없는데 runBlocking을 이용해 코루틴 월드에 진입하면 실행 할 수 있게 된다. 이름에서도 유추할 수 있듯이 runBlocking은 내부 코루틴 작업이 완료될 때까지 동안 쓰레드를 잠시 일시 중지(blocked)시킨다. 쓰레드를 마구잡이로 중단시키는건 비효율적인 작업이기 때문에 runBlocking을 사용하는 코드는 대부분 애플리케이션 최상위 계층에 존재한다. fun main() { runBlocking { launch { delay(2000) println("Hello1") } launch { delay(1000..
-
Kotlin - Coroutine개발/안드로이드 2020. 4. 15. 22:47
Kotlin의 Coroutine은 비동기 작업을 지원하는 "lightweight threads" 인 컴포넌트다. 이미 안드로이드에 있는 AsyncTask와 비슷한 역할을 수행하지만 Coroutine은 특별한 오버라이드 함 수 없이 간단하게 구현이 가능하고 깊게 들어가면 세부 동작 방식과 구현 철학은 다르다. 이번 포스트에서는 Kotlin의 Coroutine에 대해서 전반적인 소개와 사용 방법을 소개하려고 한다. 먼저 Coroutine은 하나의 task가 아니라, 여러 개 순서가 정해진 sub-tasks의 집합이다. Coroutine에서는 여러 개의 sub-task가 존재하는데 이들의 실행 순서는 보장된(guaranteed) 순서로 실행이 된다. 즉 코드 상에서는 얘네들이 sequential 하게 짜여져 ..