[kotlin] async와 await 함수 사용하기
Kotlin에서 async
와 await
함수를 사용하여 비동기 작업을 처리할 수 있습니다. 이를 통해 앱의 응답성을 높이고 병렬 처리를 구현할 수 있습니다. 이 글에서는 async
와 await
함수를 사용하여 비동기적으로 작업을 처리하는 방법을 알아보겠습니다.
async 함수로 비동기 작업 시작하기
async
함수는 코루틴을 생성하여 비동기 작업을 시작합니다. 이를 통해 병렬로 작업을 수행할 수 있습니다. 예를 들어, 네트워크 요청이나 파일 다운로드와 같은 작업을 async
함수로 처리할 수 있습니다.
import kotlinx.coroutines.*
fun main() {
val deferredResult: Deferred<String> = GlobalScope.async {
// 비동기 작업 수행
delay(1000)
"비동기 작업 완료"
}
// 다른 작업 수행
GlobalScope.launch {
val result = deferredResult.await()
println(result)
}
Thread.sleep(2000) // 비동기 작업 완료까지 대기
}
위의 예시에서 async
함수는 GlobalScope.async
를 사용하여 코루틴을 생성하고, Deferred
를 반환합니다.
await 함수로 비동기 작업 결과 얻기
await
함수는 async
함수에서 반환한 Deferred
의 결과를 얻기 위해 사용됩니다.
fun main() {
val deferredResult: Deferred<String> = GlobalScope.async {
// 비동기 작업 수행
delay(1000)
"비동기 작업 완료"
}
GlobalScope.launch {
val result = deferredResult.await()
println(result)
}
Thread.sleep(2000) // 비동기 작업 완료까지 대기
}
await
함수를 호출하여 비동기 작업의 결과를 얻을 수 있습니다.
요약
이렇게 Kotlin에서 async
와 await
함수를 사용하여 비동기 작업을 처리하는 방법에 대해 알아보았습니다. 이를 통해 병렬 처리가 필요한 작업을 쉽게 구현할 수 있습니다.
더 많은 정보는 공식 Kotlin 문서에서 확인할 수 있습니다.