코루틴은 코루틴이 시작된 스레드를 중단하지 않으면서 비동기적으로 실행되는 코드
1. 협력형 멀티태스킹
2. 동시성(시분할)프로그래밍 지원
3. 비동기 처리를 쉽게 도와줌
1. 경량
2. 메모리 누수 감소
3. 처리 도중 취소 가능
👀먼저 코루틴을 사용하기 위해 알아야 할 키워드를 알아보자
- CoroutineScope
- CoroutineContext
- Dispatcher
- launch
CoroutineScope :코루틴의 범위, 코루틴 블록을 묶음으로 제어할 수 있는 단위이다.
CoroutineContext :코루틴을 어떻게 처리할지에 대한 여러가지 정보의 집합이다.
Dispatcher :Dispatcher는 CoroutineContext의 주요 요소이다.
CoroutineContext를 상속받아 어떤 스레드를 이용해서 어떻게 동작할 것인지 미리 정의해둔다.
launch :코루틴을 만들고 함수 본문의 실행을 해당하는 디스패처에 전달하는 함수
🍕사용방법
1. 사용할 Dispatcher을 결정
2. Dispatcher을 이용해서 CoroutineScope 만들기
3. CoroutineScope의 launch또는 async에 수행할 코드 블록을 넘기기
CoroutineScope(Dispatchers.Main).launch {
//작업
}
launch 와 async 는 CoroutineScope 의 확장함수 이며, 넘겨 받은 코드 블록으로 코루틴을 만들고 실행해주는 코루틴 빌더이다.