728x90
반응형
코루틴 시작의 기초
- Kotlin에서 코루틴은 launch와 async와 같은 코루틴 빌더를 사용하여 시작됩니다.
- 이들 빌더는 코루틴을 시작하는 방법을 제공하며, 각각의 사용 목적과 특징이 있습니다.
launch 코루틴 빌더
- launch는 새로운 코루틴을 시작하고, 작업이 완료될 때까지 기다리지 않는 불록킹(non-blocking) 방식을 제공합니다.
- 주로 단순한 비동기 작업을 실행할 때 사용됩니다.
launch 사용 예제
import kotlinx.coroutines.*
fun main() {
val job = GlobalScope.launch {
// 비동기 작업
delay(1000L)
println("World!")
}
println("Hello,")
runBlocking {
job.join() // 코루틴 작업이 완료될 때까지 기다림
}
}
- 위 예제에서 launch는 "World!"를 출력하는 코루틴을 시작합니다.
async 코루틴 빌더
- async는 코루틴에서 결과를 반환할 수 있는 빌더로, Deferred 객체를 반환합니다.
- async는 결과가 필요한 비동기 작업에 사용됩니다.
async 사용 예제
import kotlinx.coroutines.*
fun main() {
val deferred = GlobalScope.async {
// 비동기 계산 작업
delay(1000L)
"Result"
}
runBlocking {
println("The result is ${deferred.await()}") // 결과가 준비될 때까지 기다림
}
}
- 위 예제에서 async는 비동기적으로 계산된 "Result" 문자열을 반환합니다.
launch와 async의 차이
- launch는 Job 객체를 반환하며, 반환된 작업의 완료를 기다리거나 취소할 수 있습니다.
- async는 Deferred 객체를 반환하며, await() 함수를 통해 비동기 결과를 얻을 수 있습니다.
결론
- Kotlin에서 코루틴을 사용하면 비동기 프로그래밍을 간단하고 효율적으로 처리할 수 있습니다.
- launch와 async는 Kotlin 코루틴에서 가장 기본적인 빌더이며, 각각의 빌더는 비동기 프로그래밍의 다른 요구 사항을 충족합니다.
728x90
반응형
'Kotlin' 카테고리의 다른 글
Kotlin에서 코루틴을 활용한 비동기 작업 수행하기 (59) | 2023.12.29 |
---|---|
Kotlin 코루틴 스코프와 컨텍스트 이해하기: 효율적인 비동기 관리 (42) | 2023.12.28 |
Kotlin 코루틴: 비동기 프로그래밍을 위한 현대적 접근 (63) | 2023.12.28 |
Kotlin 확장 함수를 통한 함수형 프로그래밍 접근 (66) | 2023.12.28 |
Kotlin에서 확장 함수와 상속 비교: 장단점 및 적절한 사용 시나리오 (65) | 2023.12.27 |