Thread 안에서 실행되는 일시중단 가능한 작업의 단위
🐭 장점
🐭 Dispatcher 종류
Main
IO : 네크워크, I/O 작업
Default : 정렬, Json Parsing, CPU를 많이 사용하는 작업
🐭 withContext
withContext()
를 사용하면 콜백을 도입하지 않고도 코드 줄의 스레드 풀을 제어할 수 있으므로 데이터베이스에서 읽기, 네트워크 요청 실행과 같은 매우 작은 함수에 이를 적용할 수 있습니다.
비동기 작업을 순차적으로 처리 할 수 있다.
suspend fun fetchDocs() { // Dispatchers.Main
val result = get("developer.android.com") // Dispatchers.Main
show(result) // Dispatchers.Main
}
suspend fun et(url: String) = // Dispatchers.Main
withContext(Dispatchers.IO) { // Dispatchers.IO (main-safety block)
/* perform network IO here */ // Dispatchers.IO (main-safety block)
} // Dispatchers.Main
}
🐭 launch / async