비동기 함수를 다음과 같이 두 그룹으로 나눠 볼 수 있다.
두 가지 어떤 경우이건 해당 작업에 접근하고 예외가 발생하면 그에 대응하거나, 해당 작업이 더 이상 필요하지 않을 땐 취소한다.
한 번 시작된 작업은 예외가 발생하지 않는한 대기하지 않는다. 다음과 같이 코루틴 빌더인 launch()를 사용해
잡을 생성하는 방법이 가장 일반적이다.
fun main(args: Aarray<String>) = runBlcking {
val job = Globalscope.launch {
// ...
}
}
다음과 같이도 사용할 수 있다.
fun main(args: Aarray<String>) = runBlcking {
val job = Job()
}
기본적으로 잡 내부에서 발생하는 예외는 잡을 생성한 곳까지 전파된다. 잡이 완료되기를 기다리지 않아도 발생한다. 예외가 발생하면 잡이 완료될 때까지 대기하지 않더라도 예외가 전파된다.
다음은 잡의 라이프 사이클이다.