These are chat archives for ReactiveX/RxJava
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
@tensory that's not necessary since that would just add more scheduling overhead and not really save the CPUs. For computational work there is a finite amount of work the CPUs can do, so moving to another thread isn't going to change anything, just use more CPU to move the work.
The reason that Schedulers.io() exists is to provide threads that you can block ... without blocking the event loops on Schedulers.computation(). The io() thread pool is unbounded, so keeps growing if you block threads and ask for more. The computation() pool is bounded to the number of CPUs, so you don't want to block them.
So, you can always do blocking IO + computation on the io() threads. On the computation threads though, only do computation, never blocking IO.