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 |
Tags
- 소프트웨어공학
- android
- 파이썬
- 리눅스
- GIT
- 역학
- 웹 크롤링
- JVM
- Spring boot
- write by chatGPT
- Database
- 자바
- 고전역학
- Java
- GPT-4's answer
- write by GPT-4
- 시스템
- lombok
- chatGPT's answer
- kotlin
- 유닉스
- 뉴턴역학
- 인프라
- flet
- 코틀린
- oracle
- NIO
- python
- 자바네트워크
- 자바암호
Archives
- Today
- Total
Akashic Records
코루틴의 이해 본문
728x90
코루틴은 비동기 작업을 단순화하는 기능으로, 복잡한 비동기 로직을 마치 순차적인 코드처럼 작성할 수 있게 해줍니다. 이를 통해 동시에 실행되는 여러 작업을 효율적으로 관리할 수 있습니다.
- 코루틴의 선언
launch
나 async
같은 코루틴 빌더를 사용해서 코루틴을 시작할 수 있습니다. 이 빌더들은 코루틴 스코프 내에서 비동기 작업을 실행합니다.
예제:
import kotlinx.coroutines.*
fun main() {
GlobalScope.launch { // 새로운 코루틴을 백그라운드에 실행합니다.
delay(1000L) // 1초 동안 비동기로 대기합니다.
println("World!") // 딜레이 후 출력합니다.
}
print("Hello, ") // 코루틴이 지연되는 동안 메인 스레드는 계속 실행됩니다.
Thread.sleep(2000L) // 메인 스레드를 2초간 멈추어 코루틴이 끝날 때까지 기다립니다.
}
이 예제에서 GlobalScope.launch
빌더를 사용해서 새로운 코루틴을 시작합니다. delay(1000L)
함수는 코루틴을 1초 동안 지연시키지만 메인 스레드는 계속 실행됩니다.
- 코루틴의 반환 값
async
빌더를 사용하면 코루틴이 값을 반환할 수 있습니다. 반환 값은 Deferred<T>
타입으로 받아올 수 있으며, .await()
을 통해 실제 결과를 얻을 수 있습니다.
예제:
import kotlinx.coroutines.*
fun main() = runBlocking {
val deferred = async { // 코루틴이 결과를 반환합니다.
delay(1000L)
"World!"
}
print("Hello, ")
print(deferred.await()) // 코루틴의 결과를 기다립니다.
}
이 예제에서 async
빌더를 사용해서 코루틴을 시작하고, 결과를 "World!"로 반환합니다. deferred.await()
은 코루틴의 결과가 준비될 때까지 기다립니다.
코루틴은 비동기 작업을 간편하게 처리하는 데 중요한 도구입니다. 코루틴을 사용하면 복잡한 콜백 구조를 피하고,
마치 일반적인 동기 코드처럼 작성할 수 있습니다. 이로 인해 코드의 가독성이 향상되며, 동시에 여러 비동기 작업을 효과적으로 관리할 수 있습니다.
728x90
'Kotlin for Beginners' 카테고리의 다른 글
코루틴과 스레드의 차이점 (0) | 2023.06.02 |
---|---|
비동기 프로그래밍 (0) | 2023.06.02 |
제네릭 (0) | 2023.06.02 |
컬렉션 (0) | 2023.06.02 |
고차 함수 (0) | 2023.06.02 |
Comments