[RxSwift] Scheduler

RudinP·2025년 10월 27일
0

Study

목록 보기
367/371
post-thumbnail

Scheduler

  • Cocoa에서의 GCD
  • RxSwift에서 Thread처리에 사용한다
  • 스레드 하나에 두 개의 Scheduler가 사용될 수도, 혹은 두 개의 스레드가 하나의 Scheduler을 사용할 수 있다.
    • 즉, 일대일 대응은 아니다.

규칙

  • UI등의 업데이트는 Main Scheduler에서 실행
  • 네트워크 요청, 파일 처리는 Background Scheduler에서 실행

Serial Scheduler

CurrentThread Scheduler

  • 주로 사용하는 스케줄러
  • 스케줄러 별도 지정하지 않을 시 자동으로 사용됨

MainScheduler

  • SerialDispatchQueue Scheduler의 일종
  • UI업데이트에 주로 사용

SerialDispatchQueue Scheduler

  • 작업을 실행할 디스패치큐를 직접 설정 가능

Concurrent Scheduler

ConcurrentDispatchQueue Scheduler

  • 작업을 실행할 디스패치큐를 직접 설정 가능

OperationQueue Scheduler

  • 실행 순서 제어, 동시 작업 수 제어 가능

이외에도 스케줄러를 직접 커스텀 할 수도 있다.

TestScheduler

  • 유닛테스트용

스케줄러를 제대로 사용하려면 옵저버블이 생성되는 시기, 스케줄러를 지정하는 방법 을 알아야 한다.

스케줄러 지정 방법

observe(on:)

  • 연산자를 실행할 스케줄러 지정
  • observeOn 이후의 연산자들이 작동될 스케줄러를 지정함

subscribe(on:)

  • 구독을 시작하고 종료할 때 사용하는 스케줄러 지정
  • 이는 subscribe(on:)이 실행되는 스케줄러, 이어지는 연산자가 실행되는 스케줄러를 지정하는 것은 아님.
  • 옵저버블이 시작되는 시점에 어떤 스케줄러를 사용할지 지정하는 것
  • observe(on:)과 달리 호출 시점이 중요하지 않다.
  • subscribe를 메인스케줄러에서 실행하고 싶다면 observe(on:)을 사용하도록 하자.
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글