Coroutine - Global Scope / runBlocking
2024. 11. 20. 13:07ㆍKotlin
코루틴은 비동기 프로그래밍을 쉽게 구현하기 위한 경량 스레드이다
Coroutine Scope - 코루틴의 생명주기를 관리하는 역할
Global Scope / runBlocking
Global Scope
GlobalScope
는 코루틴을 애플리케이션 전체의 수명 동안 실행하도록 하는 범위입니다. GlobalScope에서 시작된 코루틴은 명시적으로 취소되지 않는 한 계속 실행됩니다. 이는 주로 백그라운드 작업이나 애플리케이션의 수명 동안 지속되어야 하는 작업에 사용됩니다.
import kotlinx.coroutines.*
fun main() {
GlobalScope.launch {
// 백그라운드에서 실행될 코루틴
delay(1000L)
println("GlobalScope: 코루틴 실행 완료")
}
println("메인 함수 실행 중")
// 메인 함수가 종료되지 않도록 잠시 대기
Thread.sleep(2000L)
}
수명 주기: GlobalScope에서 시작된 코루틴은 애플리케이션의 전체 수명 동안 실행됩니다.
취소: 명시적으로 취소하지 않으면 계속 실행됩니다.
컨텍스트: 기본적으로 Dispatchers.Default를 사용하여 백그라운드 스레드에서 실행됩니다.
runBlocking
runBlocking은 현재 스레드를 블록하면서 코루틴을 실행합니다. 주로 테스트나 메인 함수에서 비동기 코드를 동기적으로 호출할 때 사용됩니다. runBlocking 내에서 실행된 모든 코루틴은 해당 블록이 완료될 때까지 실행됩니다.
import kotlinx.coroutines.*
fun main() {
runBlocking {
// runBlocking 내부에서 실행될 코루틴
launch {
delay(1000L)
println("runBlocking: 코루틴 실행 완료")
}
println("runBlocking: 메인 블록 실행 중")
}
println("메인 함수 종료")
}
'Kotlin' 카테고리의 다른 글
Dispatchers (0) | 2024.11.27 |
---|---|
Continuation (0) | 2024.11.27 |
Coroutine - Suspend (1) | 2024.11.20 |
Coroutine VS Thread (0) | 2024.11.20 |
코틀린의 List와 Array (0) | 2024.01.26 |