ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Scheduler
    RxSwift 2021. 8. 10. 15:41

    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

    댓글

Designed by Tistory.