본문 바로가기
Kotlin for Beginners

비동기 프로그래밍

by Andrew's Akashic Records 2023. 6. 2.
728x90

비동기 프로그래밍은 프로그램의 실행 순서가 작업이 완료될 때까지 기다리지 않고 다른 작업을 수행하게 하는 방식입니다. 이는 시스템의 효율성을 향상시키며, I/O 작업, 네트워크 통신 등 블로킹 작업이 필요한 경우에 특히 유용합니다.

 

비동기 프로그래밍의 주요 특징으로는 Future, Promise, Callback, Event-driven, Reactive Programming 등이 있습니다. 여기서는 코틀린의 코루틴을 사용한 비동기 프로그래밍에 대해 설명하겠습니다.

예제:

import kotlinx.coroutines.*
import kotlin.system.measureTimeMillis

suspend fun doTask(name: String, time: Long): String {
delay(time)
return "Task $name completed"
}

fun main() = runBlocking {
val time = measureTimeMillis {
    val task1 = async { doTask("1", 2000L) }
    val task2 = async { doTask("2", 500L) }

    println(task1.await())
    println(task2.await())
}

println("Completed in $time ms")
}

이 예제에서 doTask 함수는 비동기로 실행되며, 일정 시간(time) 후에 문자열을 반환합니다. async 함수를 사용하여 doTask 함수를 비동기로 호출하고, await 함수를 사용하여 비동기 작업의 결과를 기다립니다. 이 모든 과정이 동시에 이루어지므로 전체 작업 시간은 두 작업 중 더 오래 걸리는 작업의 시간과 거의 같습니다.

 

비동기 프로그래밍은 복잡한 작업을 동시에 처리하면서도 코드를 간결하고 이해하기 쉽게 유지할 수 있도록 합니다. 코틀린의 코루틴은 비동기 프로그래밍을 위한 강력한 도구로, 복잡한 콜백 체인을 피하고 블로킹 작업을 비동기로 처리할 수 있게 해줍니다.

728x90

'Kotlin for Beginners' 카테고리의 다른 글

Kotlin과 Java의 차이점  (0) 2023.06.02
코루틴과 스레드의 차이점  (0) 2023.06.02
코루틴의 이해  (0) 2023.06.02
제네릭  (0) 2023.06.02
컬렉션  (0) 2023.06.02