Understanding Schedulers
As discussed earlier, thread pools are a collection of threads. Depending on the policy of that thread pool, threads may be persisted and maintained so they can be reused. A queue of tasks is then executed by that thread pool.
Some thread pools hold a fixed number of threads (such as the computation()
one we used earlier), while others dynamically create and destroy threads as needed. Typically in Java, you use an ExecutorService
as your thread pool. However, RxJava implements its own concurrency abstraction called Scheduler
. It define methods and rules that an actual concurrency provider such as an ExecutorService
or actor system must obey. The construct flexibly makes RxJava non-opinionated on the source of concurrency.
Many of the default Scheduler
implementations can be found in the Schedulers
static factory class. For a given Observer
, a Scheduler
will provide a thread from its pool that will push the emissions. When onComplete()
is called, the operation will...