Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 역학
- android
- GPT-4's answer
- 리눅스
- write by chatGPT
- 인프라
- chatGPT's answer
- 자바암호
- 소프트웨어공학
- flet
- Database
- python
- 자바네트워크
- 데이터베이스
- 코틀린
- jpa
- oracle
- 유닉스
- write by GPT-4
- JVM
- NIO
- spring data jpa
- 고전역학
- spring integration
- Java
- 파이썬
- kotlin
- 웹 크롤링
- 시스템
- 자바
Archives
- Today
- Total
Akashic Records
비동기 프로그래밍 본문
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 |
Comments