Book Image

Learning Concurrent Programming in Scala

By : Aleksandar Prokopec
5 (1)
Book Image

Learning Concurrent Programming in Scala

5 (1)
By: Aleksandar Prokopec

Overview of this book

Table of Contents (18 chapters)
Learning Concurrent Programming in Scala
Credits
Foreword
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

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 Chapter 3, Traditional Building Blocks of Concurrency. The Observable objects come with a combinator called observeOn. This combinator returns a new Observable object that emits events using the specified Scheduler class. In the following program, we...