[Kotlin] 코틀린 - 코루틴#6 - supervision 이 글은 아래 링크의 내용을 기반으로 하여 설명합니다.https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md 또한 예제에서 로그 print시 println과 안드로이드의 Log.e()를 혼용합니다. 코루틴에서 Exception은 자식, 부모 양방향으로 전부 전달됩니다.UI component 같은곳에서 하나의 Job을 사용하면 UI 자체를 destroy하거나 화면을 떠나는 경우 모든 자식들을 취소 시킬 수 있습니다.다만, 자식중 하나가 실패되면 모든 UI component가 취소되는 상황도 같이 일어납니다. Supervision job이렇게 한방향으로만 취소를 전달하기 위한 방법으로 SupervisorJob이 있습니다.Sup.. 개발이야기/Kotlin 6년 전
[Kotlin] 코틀린 - 코루틴#5 - exception 이 글은 아래 링크의 내용을 기반으로 하여 설명합니다. https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md 또한 예제에서 로그 print시 println과 안드로이드의 Log.e()를 혼용합니다. Exception propagationCoroutine builder들을 Exception handling 측면에서 두가지 타입으로 나뉩니다.Exception을 외부로 전파(propagation) 시킴: launch, actorException을 노출(exposing)시킴: async, produce언뜻 보기엔 말장난 같습니다.fun main() = runBlocking { val job = GlobalScope.launch .. 개발이야기/Kotlin 6년 전
[Kotlin] 코틀린 - 코루틴#2 취소와 Timeout 이 글은 아래 링크의 내용을 기반으로 하여 설명합니다. https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md 또한 예제에서 로그 print시 println과 안드로이드의 Log.e()를 혼용합니다.Cancelling coroutine executioncoroutine도 취소해야할 경우가 있습니다. backgroud 작업을 진행중에 페이지가 넘어가서 더이상 결과가 필요하지 않다면 취소해야 겠지요?이를 위해 launch function이 return하는 Job을 이용합니다. import kotlinx.coroutines.* fun main() = runBlocking { val job = launch { repeat(1000.. 개발이야기/Kotlin 6년 전