Search
Duplicate

Kotlin Coroutine

Created
2022/12/11 09:00
tags
🖥️Kotlin
코루틴(Coroutine)은 코틀린에서 비동기 작업을 하기위한 방법을 말한다. 코틀린에만 있는 기능은 아니고 C#, Go 등의 언어에도 존재한다. 자바스크립트에서는 async-await 키워드로 비슷하게 지원하고 있다.
코루틴은 Co-routine의 합성어로 Co는 서로 함께 의 의미를 가지고 있다. 서브루틴을 가지고 비동기처럼 작동하도록 구현하기 때문에 동시성은 가지고 있지만 병렬성은 가지고 있지 않다.
함수에 suspend 키워드를 붙이면 함수가 블락되지 않는다. 스레드 하나에서 A함수가 실행 후 중단시키면, 그 사이에 B함수를 실행하고 이후 다시 A함수가 실행되는 방식이다.
안드로이드 기준으로 아래처럼 코루틴을 사용할 수 있다.
코루틴은 Scope 안에서 실행되야 합니다. 아래 예제에 있는 GlobalScope는 안드로이드 앱 LifeCycle과 함께 돌아갑니다.
println("Start") GlobalScope.launch { delay(1000L) println("After 1 second") } println("End") /* Start End After 1 second */
Kotlin
복사