-
Scheduler 간단 개념
우리가 아는 GCD의 개념과 유사하다.
Cocoa -> GCD
RxSwift -> Scehduler
Scheduler 는
Thread/ Dispatch Queue/ Operation Queue 가 모두 될 수 있다.
하나의 Thread에 두개의 Scheduler가 있을수도, 하나의 Scheduler에 두개의 Thread가 연결되어 있을 수 있다.
Global Queue = Background Scheduler
Serial Scheduler Concurrent Scheduler 기본 : CurrentThreadScheduler(미 지정시) ConcurrentDispatchQueueScheduler MainScheduler = Main Thread OperationQueueScheduler SerialDispatchQueueScheduler 이 외에도 TestScheduler, CustomScheduler가 있다.
그럼 어떤식으로 Scheduler를 지정할까요?
let bag = DisposeBag() let backgroundScheduler = ConcurrentDispatchQueueScheduler(queue: DispatchQueue.gloabl()) .observeOn(backgroundScheduler) // 이뒤는 지정한 Scheduler를 사용하겠다. .map { print(Thread.isMainThread ? "Main" : "Background") } // 이 외에도 방법이 있다. // 호출시점이 중요하지 않은 .subscribeOn(MainScheduler.instance) 와 비교 해야한다. // subscribeOn 은 observable이 시작되는 스케쥴러를 지정하는 개념이야.
// 이 외에도 방법이 있다.
// 호출시점이 중요하지 않은 .subscribeOn(MainScheduler.instance) 와 비교 해야한다.
// subscribeOn 은 observable이 시작되는 스케쥴러를 지정하는 개념이다.위의 내용이 이해가 가지 않으면 직접 돌려보고 확인해보는게 좋다.
728x90'RxSwift' 카테고리의 다른 글
RxSwift Error Handling (0) 2021.08.10 amb Operator (0) 2021.08.10 Combining Operators (0) 2021.08.06 Transforming Operators (0) 2021.08.05 RxSwift Observable (0) 2021.07.14