본문 바로가기
반응형

coroutine2

[Android/Kotlin] Coroutine은 왜 Light Thread이고 어떤 식으로 동작할까? 제가 가진 의문과 생각을 정리한 글입니다~! 틀린 내용이 있다면 알려주세요 :) Coroutine이란? Coroutine은 협력형 멀티 태스킹과 루틴을 통해서 구조화된 동시성을 구현하는 것이다. 협력형 멀티태스킹? 우선 Coroutine은 비선점형 스케쥴링이다. 비선점형이란 멀티태스킹의 각 작업을 운영체제가 강제로 중단시키고 다른 작업을 실행하게 할 수 없는 것을 말하는데, 그럼에도 불구하고 Coroutine이 여러 작업을 교체하며 수행할 수 있는 이유는 각 Coroutine들이 자발적으로 CPU 자원을 포기하며(yield) 여러 Coroutine이 협력적으로 실행을 주고받으면서 작동하기 때문이다. 구조화된 동시성? Coroutine은 CoroutineScope을 제공해주는데, 이 스코프 내에 Corou.. 2022. 9. 19.
[Android/Kotlin] Retrofit2(+Coroutine)은 왜 Main Thread에서 사용해도 될까? 제가 가진 의문과 생각을 정리한 글입니다~! 틀린 내용이 있다면 알려주세요 :) 💁‍♂️??? Retrofit2과 Coroutine은 Android 프로젝트에 빠지지 않는 조합이다. 그런데 혹시, ViewModel에서 Retrofit의 API 함수를 호출할 때 Thread를 바꾸고 있진 않은가? 처음 예제를 짜 볼 땐 당연히 Networking 작업이니까 IO Dispatcher로 바꾸어주고 뿌듯해했다. 당연히 Room이나 Retrofit2같은 무거운 작업은 Main-Safety하게 해야 하지 않나? Main Thread에서 호출했다가 화면 버벅거리면 어떡해?? 뭐 코루틴이야 일반적으로 호출자 스레드를 블락하지 않지만, Room이나 Retrofit2 같은 무거운 작업은 다른 Thread에서 작업하는 게 .. 2022. 8. 10.
반응형