Job | kotlinx.coroutines – Kotlin Programming Language
Coroutine 작업 하나를 의미하는 객체.
Kotlin Coroutines에서는 Coroutine을 컨트롤하기 위한 객체인 Job을 제공한다.
Job은 1개부터 여러 개에 이르는 Coroutine의 동작을 제어할 수 있다!
Coroutines Job은 coroutines의 6가지 상태를 가지고 있다.
| State | isActive | isCompleted | isCancelled |
|---|---|---|---|
| New (optional initial state) | false | false | false |
| Active (default initial state) | true | false | false |
| Completing (transient state) | true | false | false |
| Cancelling (transient state) | false | false | true |
| Cancelled (final state) | false | true | true |
| Completed (final state) | false | true | false |
위 Job을 바탕으로 Coroutine의 상태를 확인, 제어할 수 있다.
이 때 job.cancel()을 호출하면 해당 Job은 즉시 취소 상태로 가게 된다.
/* Kotlin 공식 레퍼런스 中 */
wait children
+-----+ start +--------+ complete +-------------+ finish +-----------+
| New | -----> | Active | ---------> | Completing | -------> | **Completed** |
+-----+ +--------+ +-------------+ +-----------+
| cancel / fail |
| +----------------+
| |
V V
+------------+ finish +-----------+
| Cancelling | --------------------------------> | **Cancelled** |
+------------+ +-----------+