Rx schedulers

At the beginning of this chapter, we observed that different Observable objects emit events on different threads. A synchronous Observable object emits on the caller thread when subscribe gets invoked. The Observable.timer object emits events asynchronously on threads internally used by Rx. Similarly, events in Observable objects created from Future objects are emitted on ExecutionContext threads. What if we want to use an existing Observable object to create another Observable object bound to a specific thread?

To encapsulate the choice of the thread on which an Observable object should emit events, Rx defines a special class called Scheduler. A Scheduler class is similar to the Executor and ExecutionContext interfaces we saw in ...

Get Learning Concurrent Programming in Scala now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.