728x90
반응형
GlobalScope에 대해 설명하기 전 가장 저명한 사실을 하나 얘기하고 시작한다.
우리는 앱에서 GlobalScope를 사용할 일이 거의 없을 것이다.
공식문서에서도 되도록 사용하지 않는 것을 권장하는 뉘앙스를 풍긴다.
사용하지 않을 이유 찾기
제한된 수명 주기가 없다.
이 뜻을 앱 관점에서 보면 GlobalScope 안에서 시작된 코루틴은
앱 프로세스가 종료될 때까지 종료되지 않는다는 것이다.
어떠한 Job에도 엮이지 않는다.
제목 그대로를 코드로 확인해보자.
println("GlobalScope Job: ${GlobalScope.coroutineContext[Job]}")
이 코드를 실행시켜보자.
GlobalScope Job: null
위와 같은 결과가 나온다.
위 결과로 유추할 수 있는 것이 또 하나가 생겼다.
Job 계층 구조가 형성되지 않을 것이라는 점이다.
현재 Job이 null이기 때문에 GlobalScope에서 시작되는 코루틴은 Job 계층 구조를 형성하지 않게 된다.
따라서 GlobalScope에서 시작된 코루틴은 완전 독립적으로 동작하게 되고,
이를 취소하기가 어렵다.
참조
GlobalScope
A global CoroutineScope not bound to any job. Global scope is used to launch top-level coroutines which are operating on the whole application lifetime and are not cancelled prematurely. Active coroutines launched in GlobalScope do not keep the process ali
kotlinlang.org
728x90
반응형
'Language > Kotlin' 카테고리의 다른 글
LifecycleScope 간단히 알아보기 (0) | 2025.02.26 |
---|---|
ViewModelScope 알아보기 (1) | 2025.02.25 |
Structured Concurrency in Coroutines (1) | 2025.01.19 |
Coroutines 여러 개로 연산 속도 높이기 (1) | 2024.11.22 |
Java, Kotlin Interoperability 해결하기 (0) | 2024.11.18 |