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:)을 사용하도록 하자.
