Dispatchers
- 코루틴의 실행 "Coxtext"를 관리함
- 코루틴이 어떤 쓰레드나 쓰레드 풀에서 실행될지를 결정한다
Main | IO | Default | Unconfined | |
동작 | UI쓰레드에서 실행 | 백그라운드 스레드 풀 (파일, 네트워크) | CPU 연산 전용 스레드 풀 | 처음 호출한 스레드에서 계속 |
사용적 | Android UI 작업 | I/O 작업 (DB, 파일, 네트워크 등) | 무거운 연산, 정렬, 파싱 등 | // |
예시
withContext(Dispatchers.IO) {
// 여기선 백그라운드 I/O 스레드에서 실행됨
println("파일 읽기 중: ${Thread.currentThread().name}")
}
withContext(Dispatchers.Main) {
// 여기선 메인(UI) 스레드에서 실행됨
println("UI 업데이트: ${Thread.currentThread().name}")
}