비동기 함수를 다음과 같이 두 그룹으로 나눠 볼 수 있다.

두 가지 어떤 경우이건 해당 작업에 접근하고 예외가 발생하면 그에 대응하거나, 해당 작업이 더 이상 필요하지 않을 땐 취소한다.

잡(Job) → 코루틴을 컨트롤 하기 위한 인스턴스

한 번 시작된 작업은 예외가 발생하지 않는한 대기하지 않는다. 다음과 같이 코루틴 빌더인 launch()를 사용해

잡을 생성하는 방법이 가장 일반적이다.

fun main(args: Aarray<String>) = runBlcking {
		val job = Globalscope.launch {
				// ...
		}
}

다음과 같이도 사용할 수 있다.

fun main(args: Aarray<String>) = runBlcking {
		val job = Job()
}

예외처리

기본적으로 잡 내부에서 발생하는 예외는 잡을 생성한 곳까지 전파된다. 잡이 완료되기를 기다리지 않아도 발생한다. 예외가 발생하면 잡이 완료될 때까지 대기하지 않더라도 예외가 전파된다.

라이프사이클

다음은 잡의 라이프 사이클이다.

스크린샷 2022-07-20 오전 7.40.03.png