Scheduler
- Scheduler는 프로세스가 작동하는 context를 추상화 한것
- 코코아에서의 GCD랑 비슷하다.
Scheduler의 종류
- MainScheduler - 메인 스레드에서 수행해야하는 작업을 추상화한다. UI작업을 수행할때 사용 (MainScheduler.instance는 sync하게, MainScheduler.asyncInstace는 async하게 이벤트를 전달)
- CurrentThreadScheduler - 현재 스레드에서 작업을 수행하도록한다. 가장 기본적인 Schedular
- SerialDispatchQueueScheduler - 특정 dispatchQueue에서 수행해야하는 작업을 추상화.
- ConcurrentDispatchQueueScheduler - 특정 dispatchQueue에서 수행해야하는 작업을 추상화. Concurrent하게 작업
- OperationQueueScheduler - 특정 NSOperationQueue에서 수행해야하는 작업을 추상화 - maxConcurrentOperationCount를 통해 작업양을 조절할수 있다.
sequence1
.observeOn(backgroundScheduler)
.map { n in
print("이건 백그라운드 스케줄러에서 실행될 것입니다.")
}
.observeOn(MainScheduler.instance)
.map { n in
print("이건 메인 스케줄러에서 실행될 것입니다.")
}