본문 바로가기

Android11

[Kotlin/Coroutine] 3. Composing suspending functions 중단 함수 구성에 대한 다양한 접근법 Sequential by default 순차적으로 실행 두개의 중단 함수가 다른 곳에 정의되어있다고 가정하자. 코드 suspend fun doSomethingUsefulOne(): Int { delay(1000L) // pretend we are doing something useful here return 13 } suspend fun doSomethingUsefulTwo(): Int { delay(1000L) // pretend we are doing something useful here, too return 29 } 위의 두가지 중단함수가 순차적으로 실행되기 위해서는 어떻게 해야할까? 코드 val time = measureTimeMillis { val one .. 2023. 10. 23.
[Kotlin/Coroutine] 2. Cancellation and timeouts Cancelling coroutine execution 코루틴의 실행 취소 오랜시간동안 실행되는 애플리케이션에서 백그라운드 코루틴관리를 어떻게 해야할까? 사용자가 코루틴을 시작했던 페이지를 닫고, 더 이상 결과가 필요하지 않다면 해당 작업을 취소해야 할 것이다. launch함수를 사용하면 Job을 리턴하고, 이것으로 실행 중인 코루틴을 취소할 수 있다. 코드 fun main() = runBlocking { val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // delay a bit println("main: I'm tired of waiting!") job.cancel(.. 2023. 10. 22.
[Kotlin/Coroutine] 1. Coroutines basics Coroutines guide 코루틴 공식 가이드 문서를 읽고 요약 정리해보려 한다. 목표는 Kotlin Coroutine을 완벽하게 이해하는 것!! 더불어, 영어로 된 가이드 문서를 읽는 연습도 할 것이다! : ) Coroutines basics 코루틴은 중단가능한 계산의 인스턴스이다. 스레드와 비슷한 개념이지만, 코루틴은 특정 스레드에 바인딩되지 않는다. 하나의 스레드에서 실행을 중지하고, 다른 스레드에서 다시 실행할 수 있다. 코드 fun main() = runBlocking { // this: CoroutineScope launch { // launch a new coroutine and continue delay(1000L) // non-blocking delay for 1 second (def.. 2023. 10. 19.