로딩
티스토리 데이터 처리 중입니다.

[Kotlin Coroutine] (3) - 코루틴 스코프과 컨텍스트(Dispatcher)

 [Kotlin Coroutine] (3) - 코루틴 스코프과 컨텍스트(Dispatcher)

지금까지 살펴본 코루틴은 GlobalScope에서만 실행되었다. 경우에 따라서는 어떤 연산을 수행하는 도중에만 실행되기를 원할 수 있다.

어떤 코루틴을 다른 코루틴의 문맥에서 실행하면 후자가 전자의 부모가 되고 이런 관계로 인해 이런 실행 시간 제한이 가능하게 된다. 자식의 실행이 모두 끝나야 부모가 끝날 수 있도록 자식의 생명 주기가 연관된다.

이런 기능을 구조적 동시성이라고 부르며, 블럭이나 서브루틴을 사용하는 경우 구조적 동시성을 비교할 수 있다. 다음은 이런 구조적 동시성을 나타낸 예제이다. import kotlinx.coroutines.* fun main() { println("메인 스레드 시작") runBlocking { println("부모 task 시작") launch { println(".....