Coroutine(4)
-
coroutine dispatchers, Flow Hot & Cold
이번에는 coroutine의 context와 dispatchers에 대해 알아보자. 공홈 https://kotlinlang.org/docs/coroutine-context-and-dispatchers.html Coroutine context and dispatchers | Kotlin kotlinlang.org 예제 1 launch 4개를 생성하고 개별로 Dispatchers를 지정한다. 무언가 하는데 아직 잘 이해가 안 된다. Coroutine context는 무엇이고 Dispatcher는 어떤 역할을 하는 걸까? 먼저 아래에 작동 결과를 보자. 결과 1번 dispatcher가 지정되지 않은 launch의 출력 결과는 main Thread, coroutine#2에서 task를 처리한다. 2번은 Disp..
2023.06.13 -
coroutine suspend function, async, await
예제 1 suspend function의 사용이 나왔다. suspend function은 뭘까? 어떻게 작동할까? 정확한 정의를 모르겠다. 코드를 통해 일단 어떻게 작동하는지 알아보자. 먼저 suspend function으로 만든 두 개의 함수가 있다. 각 각 one, two라는 변수로 할당한다. 그리고 실행하면 결과는 아래와 같다. 두 함수의 결과를 더한 값이 나오고 시간은 약 2초가 걸린다. 2초가 걸린다는건 doSomethingUsefulone에서 1초 delay 후 doSomethingUsefultwo에서 1초가 걸린다는 뜻이 된다. suspend fun 두 개가 실행됐는데 순차적으로 하나씩 실행을 하고 결과를 반환한다는 의미이다. suspend fuc은 동기적으로 실행한다는 의미? 아직 susp..
2023.06.12 -
coroutine basic
https://kotlinlang.org/docs/coroutines-basics.html#your-first-coroutine Coroutines basics | Kotlin kotlinlang.orgYour first coroutinerunBlocking과 launch, delay가 있다. 각 각의 역할은 무엇일까. 글에서 말하길 runBlocking은 Builder, launch는 Scope이몀서 job, delay는 suspend fun이다. Builder는 무엇이고 Scope는 또 무엇일까? 첫 번째 예제만으로는 부족하다. 예제 1위의 코드와의 차이점을 생각해 볼 수 있다. Thread를 통해 sleep 하면 출력은 Hello 가 찍히고 World가 찍힌다. sleep으로 얼마큼 delay 할까..
2023.06.10 -
Coroutine 기본 개념잡기
코루틴이란 무엇일까? 먼저 코루틴이 무엇인지 알기 전에 왜 코루틴이 나왔을까? 부터 생각해 보겠습니다. 안드로이드의 UI는 기본적으로 "메인스레드" 에서 동작한다고 합니다. 그래서 메인스레드를 보통 "UI 스레드" 라고도 부릅니다. 하지만 작업 시간이 오래 걸리거나 , 리소스를 많이 사용하는 작업을 메인스레드 하나에서 모두 동작시키게 되면, 흔히 말하는 "어플리케이션이 응답하지 않습니다" 라는 ANR 이 나타납니다. 이러한 성능과 작동의 문제로 인해 스레드 관리는 필수라고 생각합니다. 성능이 낮은 앱을 과연 누가 사용할까요?? 어떻게 하면 더 효율적으로 몸집이 큰 작업들을 관리할 수 있을까 라는 문제를 해결하기 위한 많은 것들 중 하나가 바로 "코루틴" 입니다. 코루틴 은 안드로이드 기기에서 "비동기적으..
2022.12.27