https://activedg.notion.site/361957070e9744a1ab1637e25e981082?pvs=4
협력형 멀티 태스킹
동시성 프로그래밍
비동기 처리
코루틴은 루틴(Routine : 하나의 태스크, 함수)의 일종으로서, 협동 루틴이라 할 수 있다. 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 안드로이드에서 사용할 수 있는 동시 실행 설계 패턴이다.
Thread는 Task의 단위를 말하며 다수의 작업 각각에 스레드를 할당하는 방식이다. 동시성을 보장하기 위해 스레드는 Context Swtiching을 이용한다.
작업 하나하나의 단위가 Coroutine Object이며 여러 작업에 각각의 코루틴을 할당한다. 코루틴 Object도 엄연한 객체기 때문에 heap에 적재된다. 동시성 보장을 하기 위해 Programmer Switching, 즉 프로그래머 코드를 통해 Switching 하는 시점을 마음대로 정할 수 있다.
코루틴은 스레드의 대안이 아닌 스레드를 더 잘게 쪼개어 사용하기 위한 개념!
gradle 파일에 dependency를 추가한다