[RxSwift] Scheduler

CastleSilver·2023년 4월 30일
0

Reactive X

목록 보기
6/7
post-thumbnail

멀티스레딩이란?

멀티스레딩은 프로그램의 일부분(스레드)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 계속되어, 사용자에 대한 응답성이 증가할 수 있습니다. 예를 들어, 멀티스레드가 적용된 웹 브라우저 프로그램에서 하나의 스레드가 이미지 파일을 로드하고 있는 동안, 다른 스레드에 사용자와의 상호 작용이 가능합니다. ReactiveX에서는 SubscribeOn 및 ObserveOn 연산자를 사용하여 멀티스레딩을 구현할 수 있습니다.

스케줄러의 역할

ReactiveX에서는 스케줄러(Scheduler)를 사용하여 Observable 및 Observable 연산자가 동작할 스레드를 지정할 수 있습니다. 기본적으로 Observable과 연산자 체인은 Subscribe 메서드가 호출된 스레드에서 동작하며, Observer에게 알려줍니다. SubscribeOn 연산자는 Observable이 동작할 스레드를 변경할 수 있게 하며, ObserveOn 연산자는 Observer의 알림 스레드를 변경할 수 있게 한다.

SubscribeOn 연산자는 Observable이 동작할 스레드를 지정하며, 연산자 체인에서 어느 지점에서 호출하더라도 Observable이 시작하게 되는 스레드를 지정합니다. 반면, ObserveOn 연산자는 연산자 체인에서 해당 연산자 아래에서 Observable이 사용할 스레드를 지정합니다. 따라서 Observable의 특정 연산자가 동작할 스레드를 변경하려면 ObserveOn 연산자를 여러 번 호출하여 변경할 수 있습니다.

주의점

멀티스레딩을 사용할 때 성능과 복잡성 사이에 트레이드오프가 발생할 수 있습니다. 또한 멀티스레딩은 여러 스레드가 동시에 작업을 수행하므로 성능이 향상될 수 있지만, 스레드 간의 동기화 비용이 증가하고 복잡성이 높아지는 단점이 존재합니다. 따라서 멀티스레딩을 사용할 때는 성능과 복잡성을 고려하여 적절한 방법을 선택해야 합니다.

profile
우당탕탕 비전공자 개발자

0개의 댓글